我正在开发一个新项目,并希望从我在GitHub上找到的种子项目开始。
我已经在本地克隆了种子项目,它在执行命令时显示了1个远程分支:
git remote -v
但是我想在这个仓库中添加一个新的遥控器并进行所有更改或在这个私人仓库的新仓库上扩展源代码。
现在添加新遥控器后,我可以在回购中看到2个遥控器。
如何在2个遥控器之间切换?
我不认为在处理来自2个不同遥控器的2个分支时,像git checkout
这样的命令会起作用。
答案 0 :(得分:6)
如何在2个遥控器之间切换
您没有完全“切换”,只需提及您要使用的遥控器的名称:
git push origin
# or
git push remote2
这样,你可以pull from one remote and push to another。
你甚至可以只使用一个遥控器(默认的原点),并设置一个不同的推送网址:
git remote set-url --push origin user@example.com:repo.git
我不认为在使用2个不同遥控器的2个分支时,
git checkout
之类的命令会起作用。
git checkout
更适合当地分支机构
您可以基于远程跟踪分支创建本地分支:
git checkout -b abranch remote2/abranch
虽然我的原产地的另一个遥控器是我的私人遥控器,但我将主要处理该遥控器并进行拉动和推动。
在上游遥控器上,我只会做拉动。
这是the triangular workflows的定义:
您像往常一样从origin
克隆,但是从上游获取表单。
$ git remote add upstream https://github.com/atom/atom
$ git fetch upstream
基于origin / abranch创建本地分支,但是当fetch从上游带来新的提交时,不要忘记在上游/ abranch之上重新绑定该分支。
git checkout -b abranch origin/abranch
git rebase upstream/abranch
git push --force
答案 1 :(得分:0)
我想设置另一个专门用于跟踪入门项目的分支。
git clone -o upstream user@example.com:upstream.git
cd upstream
git branch -m upmaster
git checkout -b master
git remote add origin user@example.com:myrepo.git
git push -u origin master
现在你正常工作,从主人推拉到你的回购。
当您想要提取上游更改时,请将其抓取到您的专用分支并重新绑定或合并到您的分支。
git checkout upmaster
git pull
git checkout master
git rebase upmaster