在我的本地 GIT 存储库中,我有以下提交:

A --> B --> C --> D

(其中 D 是头部)

我想将 B 和 C merge/压缩成一个提交。
我怎么能那样做?

谢谢。

最佳答案

使用这个命令:

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 的哈希的麻烦。

关于git - 如何 merge git 提交,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12061948/

10-14 02:01