在Git中列出冲突文件的最简单方法是什么?

青春壹個敷衍的年華 提交于 2020-01-06 13:59:48

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

我只需要一个冲突文件的简单列表。

有什么比这简单:

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

要么:

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

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


#1楼

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

#2楼

这是一个万无一失的方式:

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

#3楼

我一直只是使用git status

可以在最后添加awk以获取文件名

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


#4楼

Charles Bailey的回答略有不同,提供了更多信息:

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

#5楼

也许这已添加到Git中,但尚未解析的文件列在状态消息(git status)中,如下所示:

#
# Unmerged paths:
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      syssw/target/libs/makefile
#

请注意,这是Unmerged paths部分。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!