内容简介:将本地仓库批量上传至 Gitee、Github、Gitlab 平台(目前仅支持 Gitee ) 工具采用 Go 编写,算是跟 Go 的第一次亲密接触了 功能特点 [简单] 可自动在对应平台创建同名仓库并上传 [可靠] 可选择是否本地覆盖远程(...
将本地仓库批量上传至 Gitee、Github、Gitlab 平台(目前仅支持 Gitee )
工具采用 Go 编写,算是跟 Go 的第一次亲密接触了
功能特点
- [简单] 可自动在对应平台创建同名仓库并上传
- [可靠] 可选择是否本地覆盖远程(如果同名仓库在远端已存在)
- [灵活] 可通过多种方式导入仓库源(目录、文本列表)
- [快速] 并发5个同时操作(各平台均有限制,5个并发可保证成功率及速度)
注意事项
- 工具会自动生成临时的一个 Remote
up2GitX-{timestamp}进行推送,不会影响现有的 Remote 配置 - 工具会调用OAuth授权进行仓库的创建,后续可以在第三方应用管理取消授权
- 工具在进行处理的过程中会对特殊情况进行交互,请仔细阅读并慎重选择
设计流程
使用简介
下载对应平台的二进制包,可直接运行
以 Gitee 为例 ./up2 gitee -h
➜ up2GitX git:(master) ✗ ./up2 gitee -h This command is used for sync local repo to Gitee Name: gitee Usage: ./up2 [Global Options...] gitee [--option ...] [argument ...] Global Options: --verbose Set error reporting level(quiet 0 - 4 debug) --no-color Disable color when outputting message -h, --help Display this help information Arguments: repoSource Tell me which repo dir or list your want to sync, is required Examples: Using dir: ./up2 gitee /Zoker/repos/ Dir example $ ls -l /Zoker/repos/ drwxr-xr-x 4 zoker 128B Jun 1 19:05 git-work-repo1 drwxr-xr-x 4 zoker 128B Jun 1 19:02 taskover drwxr-xr-x 4 zoker 128B Jun 1 19:03 blogine drwxr-xr-x 3 zoker 96B Jun 1 12:15 git-bare-repo3 ... Using file: ./up2 gitee /Zoker/repos.list File example $ cat /Zoker/repos.list /tmp/repos/git-work-repo1 /Zoker/workspace/git-work-repo2 /other/path/to/git-bare-repo3 ...
使用示例
这里以上传到 Gitee 为例
1、指定 RepoSource
可以是一个包含很多 Git 仓库的目录,也可以是一个包含很多 Git 仓库绝对路径的文本文件,下面以目录为例
确认这些 Git 仓库是不是你所预期的
2、输入 Gitee 账号信息并选择同步到哪个 Namespace
输入注册 Gitee 所用的邮箱以及密码,认证成功后会列出可用的 Namespace,在 Gitee 上,它可以是个人名下、组织名下或者企业名下。(目前仅支持上传到个人名下,后续接口功能到位会支持组织和企业)
3、确认将要生成的仓库链接并选择公开属性
确认要生成的仓库链接是否符合预期,示例中有中文是为了演示错误选项的处理,如果确认无误,选择仓库的公私有属性
4、在 Gitee 上创建仓库并展示结果
可以看到有一个创建成功,一个创建失败,一个已经存在同名地址
对于失败的,会提示我们选择是否跳过或者退出修复错误,这里我们选择跳过
紧接着会提示对于已经存在的项目该怎么处理,你可以选择跳过,也可以选择本地强制覆盖远端,这里我们选择强制覆盖
5、同步代码到 Gitee
同步代码完成后会给出每一个代码仓的具体同步状态
这个时候我们前往 Gitee 查看动态
可以看到本地的分支已经推送到 Gitee 平台,这里的同步是会同步所有的本地分支和标签,图中的强制推送就是我们刚刚选择了覆盖,所以 工具 会强制用本地的代码覆盖远端 Gitee 的代码,所以请想清楚,再做选择。
构建
项目使用go开发,拉取代码执行go build up2.go即可
需要注意的是要修改对应的 OAuth 客户端的id和key,以 Gitee 平台为例:
修改 gitee.go 文件中的 askForAccount 的 Client 信息
params := fmt.Sprintf(`{
"grant_type": "password",
"username": "%s",
"password": "%s",
"client_id": "xxxx", // client id from Gitee
"client_secret": "xxxx", // client secret from Gitee
"scope": "user_info projects groups enterprises"
}`, email, password)
通过对 Client 的信息的改动可以支持 Gitee 公有云以及大部分的 Gitee 私有云客户。
感谢
- gCli Go 的命令行工具库
贡献代码
欢迎提交 Github 以及 Gitlab 的上传支持!
- Fork 仓库
- 创建本地分支 (
git checkout -b my-new-feature) - 提交更改 (
git commit -am 'Add some feature') - 推送到分支 (
git push origin my-new-feature) - 创建一个 Pull Request
贡献者
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 扒网站工具 v2.0 发布,发布模版计算工具等
- 数据生成工具 ZenData 发布 1.6 版本,內置 Web 版数据设计工具
- SteamTools 2.4.1 发布,包含多种 Steam 工具功能的工具箱
- 数据生成工具 ZenData 发布 1.7 版本,全新设计工具带来更佳体验
- Doxygen 3 发布,文档生成工具
- 百度云盘小工具 1.6 发布
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
ActionScript 3.0 Cookbook
Joey Lott、Darron Schall、Keith Peters / Adobe Dev Library / 2006-10-11 / GBP 28.50
Well before Ajax and Microsoft's Windows Presentation Foundation hit the scene, Macromedia offered the first method for building web pages with the responsiveness and functionality of desktop programs......一起来看看 《ActionScript 3.0 Cookbook》 这本书的介绍吧!