我遵循这个部分地用 git 挑选提交 来挑选仅对某些文件的更改。
在挑选之后,一些文件发生了冲突,即文件有如下部分:
<<<<<<<<<<<<
>>>>>>>>>>>>
通常使用 git merge,我使用我心爱的 p4merge 来解决冲突,非常直观且无错误。
但是使用cherry-pick,当我使用git mergetool时,它说不需要合并,尽管文件<<<<<<
中有。所以我不得不手动编辑和解决冲突。
那么我怎么能让 git 知道存在冲突呢?
谢谢杨
我遵循这个部分地用 git 挑选提交 来挑选仅对某些文件的更改。
在挑选之后,一些文件发生了冲突,即文件有如下部分:
<<<<<<<<<<<<
>>>>>>>>>>>>
通常使用 git merge,我使用我心爱的 p4merge 来解决冲突,非常直观且无错误。
但是使用cherry-pick,当我使用git mergetool时,它说不需要合并,尽管文件<<<<<<
中有。所以我不得不手动编辑和解决冲突。
那么我怎么能让 git 知道存在冲突呢?
谢谢杨
如果git cherry-pick
由于冲突而停顿,则射击git mergetool
将弥补冲突;这并不意味着其他地方出了问题,并且 Git 以某种方式决定冲突已经解决。
如果您运行git blame -L '/^<<<</,/^>>>>/' -- {filename}
,它将在更改标记之间注释您的文件,显示这些合并标记的引入位置。有两种可能:
更改标记被标记为“尚未提交”。在这种情况下,Git 以某种方式确定文件已经被合并,要么是由于调用失败git mergetool
,要么是可疑调用git add
.
我知道从中恢复的唯一方法是中止樱桃选择(使用git cherry-pick --abort
)并重试,但可能有更好的选择。
更改标记标有特定的提交。在这种情况下,有人对他们的提交很傻。如果您查看给出的提交,它应该会告诉您提交的人以及提交的内容;您可以通过查看它的来源并重新解决来恢复。