合并冲突会在压缩提交时破坏我的提交消息

Rya*_*yan 11 git merge

我通常使用git的工作流程是创建一个新的功能分支,在频繁提交时做一些工作,然后在功能正常工作和/或稳定时合并回开发分支.

通常,当我这样做时git merge --squash feature-branch,我得到一个很好的"压缩以下提交"消息,该消息自动填充来自功能分支的所有提交消息.

但是,如果存在任何合并冲突(比如说我完成并合并了另一个功能),我似乎丢失了来自分支的所有提交消息.自动填充的提交消息填充冲突,但不填写提交消息.我的提交消息在哪里?我能把它们还给他们吗?

小智 7

是的,您可以返回压缩提交消息.它存储在.git/SQUASH_MSG中.

您可以使用以下命令将其用作模板:

git commit -t .git/SQUASH_MSG
Run Code Online (Sandbox Code Playgroud)

  • 由于某种原因,这对我不起作用,但感谢指向`.git/SQUASH_MSG` :) (2认同)

小智 4

这并不能直接回答您的问题,但您应该能够首先避免冲突。

考虑做一个

git rebase master topic
Run Code Online (Sandbox Code Playgroud)

在执行合并之前。此页面http://git-scm.com/docs/git-rebase的“描述”部分应该会有所帮助。这也可能消除对压缩的需要,因为交互式变基将允许您压缩您选择的提交。

编辑:另请参阅:在 git 中, merge --squash 和 rebase 之间有什么区别?