git - 对 git rebase 感到困惑

标签 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 网络界面创建 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 网页界面上的 git@github.abc.abc.com:abc/dev.git 并为 upstream/master 创建一个 PR:

merge PR 后,执行:

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

现在我的本地 upstream-master 有 PR merge 提交,但是 master(即 origin/master)没有。

问:我应该基于哪个分支以及为什么?

在第 7 步和第 8 步之后我应该做什么

git rebase origin-master

或者我应该做什么

git checkout origin-master 
git rebase upstream-master

最佳答案

如果你想在本地 master 中检索在远程 upstream/master 分支上 merge 的东西,你应该:

git checkout master

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

然后

git rebase upstream/master

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

关于git - 对 git rebase 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31845179/

相关文章:

git - 克隆分支 : Remote branch branch-99 not found in upstream origin

javascript - 包括来自 raw.github.com 的 js

通过 https 代理使用时 git clone 超时

git 状态 : what is UU and why should add/rm fix it?

git - 将整个开发分支重新定位到新的主分支

git - 带有 gitolite 的公共(public)存储库

git - -‌- 在 git checkout 中的含义

git - 如何更改我分支的 git 分支?

git - 不允许所有父项都来自同一分支的 merge 提交

git - 如何使用 git interactive rebase 签署一系列提交