1 应用场景
因为某些原因, 项目的 github
地址访问不到了或访问太慢,于是把同样的代码提交一份到别的代码托管平台,为方便本地对远程不同仓库代码的拉取/提交,本地需要做一些配置。
下面以 GitHub
和 Gitee
为例进行说明,假设已经在两个平台上分别创建了仓库并同步了代码,本地设备上的初始代码是从 GitHub 上拉取的。
2 命令使用
2.1 方法1:使用 git remote set-url
操作步骤如下:
# 1.添加远程仓库
git remote set-url --add origin git@gitee.com:lishasha/git-solutions.git
# 2.查看远程仓库
git remote -v
# 结果如下:
➜ git-solutions git:(master) git remote -v
origin git@github.com:flyfreely-lss/git-solutions.git (fetch)
origin git@github.com:flyfreely-lss/git-solutions.git (push)
origin git@gitee.com:lishasha/git-solutions.git (push) # 该行为新添加的远程仓库
# 3.如果要提交代码,执行该命令。代码会同时被推送到 github 和 gitee
git push origin
从上述步骤2中可以总结该方法的优、缺点:
优点:代码推送到远程,只需要 push
一次就行了;
缺点:在一台设备上,只能从标有 (fetch)
字样的地址拉取远程仓库代码。
2.2 方法2:直接修改 .git/config
文件
操作步骤如下:
- 项目根目录下打开
.git/config
文件 - 找到
[remote "origin"]
,添加对应的 url,效果如下图:
[remote "origin"]
url = git@github.com:flyfreely-lss/git-solutions.git
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@gitee.com:lishasha/git-solutions.git # 新添加的行
- 执行
git remote -v
,会发现结果和方法1是一样的。其实方法1、2是一样的,只不过方法1是通过执行命令的方式修改.git/config
文件,方法2则是直接修改该文件的。
2.3 方法3:使用 git remote add
操作步骤:
# 1.添加远程仓库
git remote add gitee git@gitee.com:lishasha/git-solutions.git
# 2.查看远程仓库
git remote -v
# 结果如下:
➜ git-solutions git:(master) ✗ git remote -v
gitee git@gitee.com:lishasha/git-solutions.git (fetch)
gitee git@gitee.com:lishasha/git-solutions.git (push)
origin git@github.com:flyfreely-lss/git-solutions.git (fetch)
origin git@github.com:flyfreely-lss/git-solutions.git (push)
# 3.如果要提交代码,执行该命令。代码会被分别推送到 github 和 gitee
git push origin
git push gitee
从上述步骤2中可以总结该方法的优、缺点:
优点:在一台设备上,可以从任意地址拉取远程仓库代码;
缺点:代码推送到远程,需要 push
两次。
3 总结
若只是做一些简单的提交/拉取动作,使用方法1/2即可;若想要做更灵活的控制,建议方法1/2 & 方法3中的方式都可以配置上。