了解 Git 变基
Understanding Git Rebase
这是我的 Git 存储库(本地和远程)的结构。
本地
- 高手
- 我的工作副本
远程
- origin/master
- origin/my-workingcopy
- origin/others-workingcopy
以下是每个分支相对提前提交的状态。
git rev-list --left-right --count master...origin/master
0 15
git rev-list --left-right --count my-workingcopy...origin/master
40 15
git rev-list --left-right --count my-workingcopy...origin/my-workingcopy
0 0
现在我想将 master 上的那些最新更改(15 次提交)带入 my-workingcopy。所以我做了以下步骤。
git checkout master
git pull origin master
git checkout my-workingcopy
git rebase master
所以我最终得到以下状态。
git rev-list --left-right --count master...origin/master
0 0
git rev-list --left-right --count my-workingcopy...origin/master
40 0
git rev-list --left-right --count my-workingcopy...origin/my-workingcopy
15 7
在这里,我遇到了最后一个命令的问题,它显示 my-workingcopy 落后于 origin/my-workingcopy通过 7 次提交。可以理解的是,由于变基,它从远程领先,但是是什么原因导致它从远程落后,因为它们在进行变基之前是同步的。
任何对此的澄清都会有所帮助。
问题是修订版与原始修订版没有关系....到git它们是不同的修订版....来源如此分支你有原始的 7 个修订....在你的本地分支上你有 other 7 个修订(加上 8 个来自 master,我假设)不同于远程分支上的 7 个.
进行变基时,您正在重写当前分支的历史记录。
您将当前分支倒回到与另一个分支相同的点(基本上将当前分支上的提交放在一边),然后应用当前分支上的提交,但不应用另一个分支上的提交分支。对于每次提交,git 可能会自动合并,因此它可能不完全等于 rebase 之前的状态(因为起点不同)。
可能是您的 40 次提交中有 7 次需要更改,因此它们不再与上次推送时相同。不必担心。但是,如果您在推送时遇到错误,可能是时候停下来重新考虑一下了。
这是我的 Git 存储库(本地和远程)的结构。
本地
- 高手
- 我的工作副本
远程
- origin/master
- origin/my-workingcopy
- origin/others-workingcopy
以下是每个分支相对提前提交的状态。
git rev-list --left-right --count master...origin/master
0 15
git rev-list --left-right --count my-workingcopy...origin/master
40 15
git rev-list --left-right --count my-workingcopy...origin/my-workingcopy
0 0
现在我想将 master 上的那些最新更改(15 次提交)带入 my-workingcopy。所以我做了以下步骤。
git checkout master
git pull origin master
git checkout my-workingcopy
git rebase master
所以我最终得到以下状态。
git rev-list --left-right --count master...origin/master
0 0
git rev-list --left-right --count my-workingcopy...origin/master
40 0
git rev-list --left-right --count my-workingcopy...origin/my-workingcopy
15 7
在这里,我遇到了最后一个命令的问题,它显示 my-workingcopy 落后于 origin/my-workingcopy通过 7 次提交。可以理解的是,由于变基,它从远程领先,但是是什么原因导致它从远程落后,因为它们在进行变基之前是同步的。
任何对此的澄清都会有所帮助。
问题是修订版与原始修订版没有关系....到git它们是不同的修订版....来源如此分支你有原始的 7 个修订....在你的本地分支上你有 other 7 个修订(加上 8 个来自 master,我假设)不同于远程分支上的 7 个.
进行变基时,您正在重写当前分支的历史记录。
您将当前分支倒回到与另一个分支相同的点(基本上将当前分支上的提交放在一边),然后应用当前分支上的提交,但不应用另一个分支上的提交分支。对于每次提交,git 可能会自动合并,因此它可能不完全等于 rebase 之前的状态(因为起点不同)。
可能是您的 40 次提交中有 7 次需要更改,因此它们不再与上次推送时相同。不必担心。但是,如果您在推送时遇到错误,可能是时候停下来重新考虑一下了。