在压缩合并后接受默认的git提交信息

4
我想要在脚本中执行以下操作:
git merge --squash someBranch
git push

问题是合并操作不会生成提交。所以在推送之前,我必须先提交。由此合并产生的默认提交消息已经足够了。那么我的问题是:

  1. 我能否自动产生提交来完成合并操作?

  2. 或者我可以在脚本中添加一个命令来接受默认提交消息的提交操作吗?

谢谢!


我可以问一下你为什么认为默认设置就足够了吗?难道压缩提交的唯一原因不是想让一个分支中的一堆提交看起来像一个提交吗?如果原始提交消息有意义,那么它们可能描述了原始提交。在这种情况下,您可能希望重新基于这些提交,而不是压缩它们。 - morten
五年过去了,我已经记不起来为什么要这样做了。 - Lars Bilke
呵呵,我懂了。无论如何,谢谢你的回答 :) - morten
3个回答

5

合并后默认的提交信息会保存在.git/MERGE_MSG文件中,你可以按照以下步骤操作:

 git commit -F .git/MERGE_MSG

在合并之后。

4
谢谢!但在我的特殊情况下,我必须使用.git/SQUASH_MSG - Lars Bilke

5

看起来在更新的git版本中,你可以尝试使用 --no-edit 选项,如 git-merge文档 和这个SO问题中所述。

git merge --no-edit --squash someBranch
git push

0

另一种方式:

git merge --squash someBranch
git commit -m ""

--no-edit选项对我不起作用(Git 2.7.0)。它显示:Squash commit -- not updating HEAD


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