我只需要一份冲突文件列表。
还有什么比:
git ls-files -u | cut -f 2 | sort -u
or:
git ls-files -u | awk '{print $4}' | sort | uniq
我想我可以为此设置一个方便的别名,但我想知道专业人士是如何做到的。我会用它来写shell循环,比如自动解决冲突等等。也许可以通过插入mergetool.cmd来替换这个循环?
我只需要一份冲突文件列表。
还有什么比:
git ls-files -u | cut -f 2 | sort -u
or:
git ls-files -u | awk '{print $4}' | sort | uniq
我想我可以为此设置一个方便的别名,但我想知道专业人士是如何做到的。我会用它来写shell循环,比如自动解决冲突等等。也许可以通过插入mergetool.cmd来替换这个循环?
当前回答
Git的状态会在有冲突的文件旁边显示“已修改”,而不是“已修改”或“新文件”等
其他回答
试图回答我的问题:
不,似乎没有比问题中的方法更简单的方法了,开箱即用。
在键入太多次之后,只是将较短的一个粘贴到一个名为“git-conflicts”的可执行文件中,让git可以访问,现在我可以: git冲突来获得我想要的列表。
更新:正如Richard所建议的,你可以设置一个git别名,作为可执行文件的替代
git config --global alias.conflicts '!git ls-files -u | cut -f 2 | sort -u'
通过别名使用可执行文件的一个优点是,您可以与团队成员共享该脚本(在repo的bin dir部分)。
实用git向导https://github.com/makelinux/git-wizard分别计算未解决的冲突更改(冲突)和未合并的文件。冲突必须手动或使用mergetool解决。解决的未合并的更改可以添加和提交通常与git rebase -continue。
我一直只使用git状态。
可以在最后添加awk来获得文件名吗
git status -s | grep ^U | awk '{print $2}'
查尔斯·贝利的回答略有变化,提供了更多信息:
git diff --name-only --diff-filter=U | xargs git status
你可以在命令行上点击git ls-files -u,它会列出有冲突的文件