1

我遵循这个部分地用 git 挑选提交 来挑选仅对某些文件的更改。

在挑选之后,一些文件发生了冲突,即文件有如下部分:

<<<<<<<<<<<<
>>>>>>>>>>>>

通常使用 git merge,我使用我心爱的 p4merge 来解决冲突,非常直观且无错误。

但是使用cherry-pick,当我使用git mergetool时,它说不需要合并,尽管文件<<<<<<中有。所以我不得不手动编辑和解决冲突。

那么我怎么能让 git 知道存在冲突呢?

谢谢杨

4

1 回答 1

0

如果git cherry-pick由于冲突而停顿,则射击git mergetool将弥补冲突;这并不意味着其他地方出了问题,并且 Git 以某种方式决定冲突已经解决。

如果您运行git blame -L '/^<<<</,/^>>>>/' -- {filename},它将在更改标记之间注释您的文件,显示这些合并标记的引入位置。有两种可能:

  • 更改标记被标记为“尚未提交”。在这种情况下,Git 以某种方式确定文件已经被合并,要么是由于调用失败git mergetool,要么是可疑调用git add.

    我知道从中恢复的唯一方法是中止樱桃选择(使用git cherry-pick --abort)并重试,但可能有更好的选择。

  • 更改标记标有特定的提交。在这种情况下,有人对他们的提交很傻。如果您查看给出的提交,它应该会告诉您提交的人以及提交的内容;您可以通过查看它的来源并重新解决来恢复。

于 2012-08-24T08:56:56.343 回答