我只需要一份冲突文件列表。
还有什么比:
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状态。
可以在最后添加awk来获得文件名吗
git status -s | grep ^U | awk '{print $2}'
其他回答
下面是我用来列出适合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状态。
可以在最后添加awk来获得文件名吗
git status -s | grep ^U | awk '{print $2}'
git status --short | grep "^UU "
对我来说,公认的答案并不管用。为了防止捕获
警告:[]中的LF将被CRLF取代。 该文件在您的工作目录中有其原始的行结束符
在Powershell中我使用了这种方法:
git ls-files -u| ForEach{($_.Split("`t"))|Select-Object -Last 1}| get-unique
Git的状态会在有冲突的文件旁边显示“已修改”,而不是“已修改”或“新文件”等