在压缩提交时合并冲突会毁掉我的提交消息

我通常使用git的工作流程是创建一个新的功能分支,使用频繁的提交进行一些工作,然后在功能运行和/或稳定时重新合并到开发分支中。

通常,当我做git merge --squash feature-branch ,我会得到一个很好的“压扁的以下提交”消息,它会自动填充来自特性分支的所有提交消息。

但是,如果存在任何合并冲突(例如,我在完成此项工作时完成并合并了另一个特性),我似乎失去了来自分支的所有提交消息。 自动填充的提交消息填充冲突,但不填充提交消息。 我的提交信息去了哪里? 我可以让他们回来吗?


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

考虑做一个

git rebase master topic

在执行合并之前。 这个页面的DESCTIPTION部分应该是有帮助的。这也可以避免对壁球的需求,因为交互式底图可以让你压缩你选择的提交。

编辑:另请参见:在混帐,合并--squash和rebase之间有什么区别?


是的,你可以得到壁球提交信息。 它存储在.git / SQUASH_MSG中。

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

git commit -t .git/SQUASH_MSG

没有什么是真正与Git一起失去的。 功能分支上的提交列表可以通过以下方式获得:

git cherry feature-branch

然后简单地将其传递给git cat-file

git cherry feature-branch | cut -f2 -d' ' | git cat-file --batch

你需要清理输出。 我不知道一种更好地自动化的方法。

链接地址: http://www.djcxy.com/p/26077.html

上一篇: Merge conflicts ruin my commit message while squashing commits

下一篇: Git merge branch into master