【问题标题】:How do I change a commit message after a 'git-pull' auto-merge?如何在“git-pull”自动合并后更改提交消息?
【发布时间】:2013-01-12 11:39:17
【问题描述】:

有时,当自动合并生成git-pull 时,我的合作者会“惊慌”,并且只接受默认的提交消息。在推送此提交之前,我想确保消息得到修复,但 --amend 似乎不起作用。修复在这种情况下生成的消息的最佳方法是什么。我能为他们想出的最佳指示是

git reset --soft HEAD~
git merge -m <message> <the tracked remote branch>

但这似乎有点吓人 (reset) 并且容易出错(必须明确输入远程跟踪的分支)。

有没有一种简单的方法来更改刚刚通过与远程跟踪 repo 合并生成的提交消息?为什么--amend 不起作用?

【问题讨论】:

  • git commit --amend 在这种情况下为我工作(git 1.7.9.5)。你有什么麻烦?仅供参考,您可以使用@{u} 来引用被跟踪的远程分支。
  • @cbuckley:你是对的!我can't make this happen again(git 1.8.1)。

标签: git git-merge git-remote git-reset


【解决方案1】:

您始终可以尝试使用 git pull --rebase 将您的提交放在树的顶部。但是 git 对这种说法提出了警告。

“这是一种潜在的危险操作模式。它会重写历史记录,当您已经发布该历史记录时,这并不是一个好兆头。除非您仔细阅读 git-rebase(1),否则不要使用此选项。” (http://git-scm.com/docs/git-pull)

如果您对消除合并历史感到满意,那么这就是您的选择。

【讨论】:

    【解决方案2】:

    @{u} 可以很好地替代您的&lt;the tracked remote branch&gt;,然后您可以将这两个步骤合二为一。也许是您可以分发给他们的 shell 脚本,或者他们可以添加到他们的 shell 中的别名。

    【讨论】:

    • 那么git reset --soft HEAD~ 是“正确”的做法吗?有替代品吗?
    【解决方案3】:

    git commit --amend 应该在这种情况下工作。究竟是什么不起作用?

    【讨论】:

    • 完美——忘了在我的回答中提及:git commit --amend 对于这种情况也是绝对正确的工具。
    猜你喜欢
    • 2012-12-15
    • 2020-07-25
    • 1970-01-01
    • 2020-12-18
    • 2011-11-08
    • 1970-01-01
    • 2013-05-08
    • 2015-07-07
    • 1970-01-01
    相关资源
    最近更新 更多