如何合并Git提交记录

4
在我的本地 GIT 仓库中,我有以下提交记录:
A --> B --> C --> D
(其中D是头部)
我想将B和C合并/压缩成一个提交记录。如何做到这一点?
谢谢。
1个回答

9

使用以下命令:

git rebase -i A ;# where A is A's commit hash

在交互式编辑器中,更改这些行,应该看起来像这样:
pick c7787af A
pick f9d9262 B
pick 6c363d0 C
pick 40f657d D

变为:

pick c7787af A
pick f9d9262 B
squash 6c363d0 C
pick 40f657d D

如果您希望放弃 C 的提交信息,但仍要压缩提交,则可以使用以下命令:
pick c7787af A
pick f9d9262 B
fixup 6c363d0 C
pick 40f657d D

永远不要对已经与协作者分享的分支进行变基。此操作会更改SHA1散列值,并导致非快进更新。

正如Jason在评论中提到的那样,另一种语法是git rebase -i HEAD~4。当您将最近的历史记录重新打包以压缩提交时(即当很容易向后计算父项时),这可以避免查找A的哈希值的麻烦。


2
除了@Christopher的答案之外,您还可以使用git rebase -i HEAD~4,其中4是您想要更改的最顶部提交的数量。这样可以避免手动输入哈希值... - Penghe Geng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接