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

还有什么比:

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

or:

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

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


当前回答

查尔斯·贝利的回答略有变化,提供了更多信息:

git diff --name-only --diff-filter=U | xargs git status

其他回答

假设你知道git根目录${GIT_ROOT}在哪里,你可以这样做,

 cat ${GIT_ROOT}/.git/MERGE_MSG | sed '1,/Conflicts/d'
git status --short | grep "^UU "

查尔斯·贝利的回答略有变化,提供了更多信息:

git diff --name-only --diff-filter=U | xargs git status

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

如果您尝试提交,并且存在冲突,那么git将为您提供当前未解决的冲突列表……但不是普通的列表。这通常是您在交互工作时想要的,因为当您解决冲突时,列表会变得更短。