对 git 变基感到困惑
Confused about 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)
Fork git@github.abc.abc.com:companyname/dev.git 使用 github 网络界面。创建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
现在转到 git 中心 Web 界面上的 git@github.abc.abc.com:abc/dev.git
并为 upstream/master 创建一个 PR:
合并 PR 后,执行:
7. git checkout upstream-master
8. git pull --rebase
现在我的本地 upstream-master
有 PR 合并提交,但 master
(即 origin/master)没有。
问:我应该基于哪个分支以及为什么?
在第 7 步和第 8 步之后我应该做什么
git rebase origin-master
或者我应该做
git checkout origin-master
git rebase upstream-master
如果您想在本地 master 中检索在远程 upstream/master 分支上合并的内容,您应该:
git checkout master
将自己定位到要更新的本地分支
然后
git rebase upstream/master
从删除 upstream/master 分支中检索修改到您当前的本地分支
我的工作流程:
$ 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)
Fork git@github.abc.abc.com:companyname/dev.git 使用 github 网络界面。创建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
现在转到 git 中心 Web 界面上的 git@github.abc.abc.com:abc/dev.git
并为 upstream/master 创建一个 PR:
合并 PR 后,执行:
7. git checkout upstream-master
8. git pull --rebase
现在我的本地 upstream-master
有 PR 合并提交,但 master
(即 origin/master)没有。
问:我应该基于哪个分支以及为什么?
在第 7 步和第 8 步之后我应该做什么
git rebase origin-master
或者我应该做
git checkout origin-master
git rebase upstream-master
如果您想在本地 master 中检索在远程 upstream/master 分支上合并的内容,您应该:
git checkout master
将自己定位到要更新的本地分支
然后
git rebase upstream/master
从删除 upstream/master 分支中检索修改到您当前的本地分支