【问题标题】:Accept default git commit message after a squashed merge在压缩合并后接受默认的 git 提交消息
【发布时间】:2012-01-24 06:10:28
【问题描述】:

我想在脚本中执行以下操作:

git merge --squash someBranch
git push

问题是合并没有提交。所以在推动之前我必须承诺。此合并创建的默认提交消息就足够了。所以我的问题是:

  1. 我可以通过自动生成提交来进行合并吗?

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

谢谢!

【问题讨论】:

  • 请问您为什么认为默认就足够了?制作壁球的唯一原因不是您想让一个分支中的一堆提交显示为一个提交吗?如果原始提交消息有意义,它们可能描述了原始提交。在这种情况下,您可能希望对这些提交进行变基而不是压缩。
  • 5年后我不记得这样做的原因了..
  • 呵呵,可以理解。谢谢你的回答:)

标签: git merge commit squash


【解决方案1】:

合并后的默认提交消息在.git/MERGE_MSG,因此您可以执行以下操作:

 git commit -F .git/MERGE_MSG

...合并后。

【讨论】:

  • 谢谢!但在我的特殊情况下,我不得不使用.git/SQUASH_MSG
【解决方案2】:

看起来在更现代的 git 版本中,您可以尝试使用git-merge docs 和此SO question 中所述的--no-edit 选项。

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

【讨论】:

    【解决方案3】:

    另一种方式:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-12
      • 2016-05-22
      • 2016-04-26
      • 1970-01-01
      • 2021-03-12
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多