【问题标题】:"git cherry-pick" adds "Conflicts:" line to commit message"git cherry-pick" 添加 "Conflicts:" 行来提交消息
【发布时间】:2017-01-25 00:42:11
【问题描述】:

每当我使用git cherry-pick 并且出现冲突时,在解决冲突并运行git cherry-pick --continue 后,提交消息都会添加一个Conflicts: 部分,如下所示:

<The original commit message>

Conflicts:
    <path of first file that had a conflict>
    ...
    <path of last file that had a conflict>

# The usual comment with instructions

Conflicts: 部分没有被注释掉,所以如果保持不变,它将成为樱桃挑选提交的实际提交消息的一部分。

所以,关于这个的两个问题:

  1. 为什么这部分有用?如果我解决了冲突,为什么它们存在的事实是相关的?

  2. 有没有办法禁用此行为?我觉得每次都必须手动删除该部分很烦人。

编辑:由于评论表明行为可能取决于 git 的版本:我使用的是 git 2.1.4,这是 Debian stable 存储库中存在的版本。

【问题讨论】:

  • 较新版本的 Git 将这些行放在注释部分,因此它们不会成为消息的一部分。这些行记录了哪些文件有冲突。当人们想知道合并期间发生了什么时,它可能会很有用。

标签: git version-control cherry-pick


【解决方案1】:

对于您的问题:

  1. 主要是还是有冲突。您可以使用git status 进行检查。如果有冲突,你应该修改并保存冲突文件,然后使用git add .git commit。您也可以将 git 更新到最新版本。

  2. 是的,您可以使用-X 自动解决冲突。如git cherry-pick SHA -X [ours|theirs]ours 表示保留当前分支的更改,theirs 表示保留 SHA 中的更改。

【讨论】:

  • 如前所述,即使在解决了所有冲突之后,我也会看到此部分。
  • 你在git cherry-pick --continue之前使用过git add .吗?
  • 是的,git add .git add &lt;path&gt; 用于每个冲突路径。
  • 由于所有冲突文件都被git add标记为解决冲突,这意味着您可以继续挑选。所以你得到的消息可能是由不同的 git 版本引起的。我使用 git 2.10.1,它不显示消息。
猜你喜欢
  • 2012-11-05
  • 2021-01-18
  • 2018-04-17
  • 2012-05-21
  • 2016-10-24
  • 2016-04-11
  • 2018-04-16
  • 2016-01-08
  • 1970-01-01
相关资源
最近更新 更多