在git中使用多个遥控器

时间:2016-06-25 08:10:19

标签: git github

我正在开发一个新项目,并希望从我在GitHub上找到的种子项目开始。
我已经在本地克隆了种子项目,它在执行命令时显示了1个远程分支:

git remote -v

但是我想在这个仓库中添加一个新的遥控器并进行所有更改或在这个私人仓库的新仓库上扩展源代码。

现在添加新遥控器后,我可以在回购中看到2个遥控器。

如何在2个遥控器之间切换?
我不认为在处理来自2个不同遥控器的2个分支时,像git checkout这样的命令会起作用。

2 个答案:

答案 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的定义:

enter image description here

您像往常一样从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