对git rebase感到困惑

时间:2015-08-06 01:02:15

标签: git github git-rebase

我的工作流程:

$ git remote -v
origin  git@github.abc.abc.com:abc/dev.git (fetch)
origin  git@github.abc.abc.com:abc/dev.git (push)
upstream  git@github.abc.abc.com:companyname/dev.git (fetch)
upstream  git@github.abc.abc.com:companyname/dev.git (push)

使用github web界面获取git@github.abc.abc.com:companyname / dev.git。创建git@github.abc.abc.com:abc/dev.git

现在:

1. git clone git@github.abc.abc.com:abc/dev.git
2. git remote add origin git@github.abc.abc.com:abc/dev.git
3. git remote add upstream git@github.abc.abc.com:companyname/dev.git 
4. git checkout -b upstream-master upstream/master
5. git checkout -b master origin/master

现在修改一些代码并在本地主分支上创建提交。

5.1. git add somecode.c
5.2. git commit -m "my commit for which I will make a PR" 
6. git push origin master

现在转到github web界面上的git@github.abc.abc.com:abc/dev.git并为上游/主人创建PR:

合并PR后,请执行以下操作:

7. git checkout upstream-master 
8. git pull --rebase

现在我的本地upstream-master有PR合并提交,但master(原始/主人)没有。

问:我应该在哪个分支上进行改变?为什么?

我应该在第7步和第8步之后

git rebase origin-master

或者我应该

git checkout origin-master 
git rebase upstream-master

1 个答案:

答案 0 :(得分:1)

如果要在本地主服务器中检索在远程上游/主分支上合并的内容,您应该:

git checkout master

将自己定位到您要更新的本地分支

然后

git rebase upstream/master

从remove upstream / master分支检索修改到当前的本地分支