鉴于以下分支
A---B---C topic (HEAD)
/
D---E---F---G master
Run Code Online (Sandbox Code Playgroud)
并运行命令
git rebase master
Run Code Online (Sandbox Code Playgroud)
这是否意味着,我们是
topic/HEAD的master,或...master用topic/HEAD?我无法从git-rebase手册页中推断出我将如何在句子中表达此操作。
PS:我知道rebase它是什么以及它做什么,我只想知道“如何说话”命令,因为第一个参数实际上被称为upstream.
结果分支布局如下:
A---B---C ("dangling", waiting for garbage collection)
/
D---E---F---G---A'---B'---C' < topic (HEAD)
^
master
Run Code Online (Sandbox Code Playgroud)
您将使用重新设定您的topic(当前)分支master,从而将 A(现在是 A',因为它不是完全相同的提交)的祖先从 E 更改为 G。
第一个,在 master 上重新调整主题/HEAD 的基础。
您将进行所有提交,包括最新的 master 内容。master 的当前状态/最新提交现在再次成为您工作的“基础”。
您将这项工作重新建立在(已在 master 中完成的工作)之上。
并且您的提交(副本)将添加到 master 中最后一次提交之后的末尾。感谢 Makoto 提供了解释上述内容的图形。
有关更多参考资料,我个人认为Atlassian 的本教程解释得非常好,包括类似的图形。基本的变基需要 2 分钟的阅读时间,然后继续交互式变基,这是工具包中一个非常非常好的功能!