有没有办法检查冲突列表(冲突文件的名称和冲突数量)?
我发现的唯一的事情是审查预先创建的.git/MERGE_MSG
文件......但这不是我真正寻找的...
me_*_*and 18
编辑:当然git status
,正如kostix 所说,简单,明显和过度工程的免费答案.这样做的缺点是git status
检查索引的状态与工作副本相比较慢,而下面只检查索引,这是一个更快的操作.
要获取冲突文件的名称,请使用git ls-files --unmerged
.
$ git ls-files --unmerged
100755 f50c20668c7221fa6f8beea26b7a8eb9c0ae36e4 1 path/to/conflicted_file
100755 d0f6000e67d81ad1909500a4abca6138d18139fa 2 path/to/conflicted_file
100755 4cb5ada73fbe1c314f68c905a62180c8e93af3ba 3 path/to/conflicted_file
Run Code Online (Sandbox Code Playgroud)
为了方便起见,我在我的~/.gitconfig
文件中有以下内容(我无法申请信用,但我不记得原始来源):
[alias]
conflicts = !git ls-files --unmerged | cut -f2 | sort -u
Run Code Online (Sandbox Code Playgroud)
这给了我:
$ git conflicts
path/to/conflicted_file
Run Code Online (Sandbox Code Playgroud)
为了解决单个文件中的冲突数量,我只使用冲突标记grep
的=======
一部分:
$ grep -c '^=======$' path/to/conflicted_file
2
Run Code Online (Sandbox Code Playgroud)
您可以将以下内容添加到您的~/.gitconfig
以及conflicts
上面的行中:
[alias]
count-conflicts = !grep -c '^=======$'
count-all-conflicts = !grep -c '^=======$' $(git conflicts)
Run Code Online (Sandbox Code Playgroud)
这会给你:
$ git conflicts
path/to/a/conflicted_file
path/to/another/different_conflicted_file
$ git count-conflicts path/to/a/conflicted_file
2
$ git count-all-conflicts
5
Run Code Online (Sandbox Code Playgroud)