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

还有什么比:

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

or:

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

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


当前回答

我一直只使用git状态。

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

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

其他回答

我一直只使用git状态。

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

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

你可以在命令行上点击git ls-files -u,它会列出有冲突的文件

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

下面是我用来列出适合bash命令行替换的修改文件

git diff --numstat -b -w | grep ^[1-9] | cut -f 3

要编辑列表,使用$(cmd)替换。

vi $(git diff --numstat -b -w | grep ^[1-9] | cut -f 3)

如果文件名中有空格,则无效。我尝试使用sed来转义或引用空格,输出列表看起来是正确的,但$()替换仍然没有达到预期的效果。

如果你在本地git存储库中工作,或者在patch -p1——merge <…是应用。

grep -rnw . -e '^<<<<<<<$'