我只需要一份冲突文件列表。

还有什么比:

git ls-files -u  | cut -f 2 | sort -u

or:

git ls-files -u  | awk '{print $4}' | sort | uniq

我想我可以为此设置一个方便的别名,但我想知道专业人士是如何做到的。我会用它来写shell循环,比如自动解决冲突等等。也许可以通过插入mergetool.cmd来替换这个循环?


当前回答

Git的状态会在有冲突的文件旁边显示“已修改”,而不是“已修改”或“新文件”等

其他回答

Git的状态会在有冲突的文件旁边显示“已修改”,而不是“已修改”或“新文件”等

使用git diff,带name-only只显示名称,diff-filter=U只包括'Unmerged'文件(可选地,相对于当前工作目录显示路径)。

git diff --name-only --diff-filter=U --relative

这里有一个万无一失的方法:

grep -H -r "<<<<<<< HEAD" /path/to/project/dir

对我来说,公认的答案并不管用。为了防止捕获

警告:[]中的LF将被CRLF取代。 该文件在您的工作目录中有其原始的行结束符

在Powershell中我使用了这种方法:

git ls-files -u| ForEach{($_.Split("`t"))|Select-Object -Last 1}| get-unique

我一直只使用git状态。

可以在最后添加awk来获得文件名吗

git status -s | grep ^U | awk '{print $2}'