我有几十个文件,Git已经添加了合并冲突标记,但Git不承认存在合并冲突,并且不会打开mergetool:
1 <<<<<<< HEAD
2 <?php
3 require_once('../auth_header.php');
4 require_once($_SERVER['DOCUMENT_ROOT'].'/init.php');
5
6 =======
7 <?
8 require '../auth_header.php';
9
10 >>>>>>> development
$ git mergetool
No files need merging
我现在editing those files by hand。有没有办法使用正确的合并冲突工具与上面格式化的文件?我不一定需要与BASE文件进行比较,只是一种方法来区分和选择两个方面&#39;如上所示的文件没有手动擦除部分和标记。我当然更愿意留在VIM。
我尝试过的所有合并冲突工具,例如kdiff3
需要两个文件才能进行差异化。它们似乎不支持合并冲突标记。
答案 0 :(得分:2)
Git不会在没有告诉您存在冲突的情况下插入这些字符。即使使用--rerere-autoupdate标志,它也不会自动提交,也没有其他冲突。这是为了确保您知道存在冲突,并且您已正确解决冲突。
当然,这并不意味着你不能超越&#34; Git,无论如何都要添加文件,但冲突仍然存在。如果您怀疑这是问题所在,请尝试使用
查找是谁git log -S'<<<<<<' --all
答案 1 :(得分:1)
ConflictToDiff plugin可以将一个(它表示CVS,但也适用于其他工具)冲突文件(即包含<<<<<<<<
标记)拆分回冲突版本,并提供合并它们的命令。 / p>
或者,我的ConflictMotions plugin定义了移动命令和文本对象,以便在冲突的行上进行操作。有了它,您可以解决原始文件中的冲突。
如果已提交这些冲突标记,请使用 blame 功能查找发起人并与他交谈。