如何在终端窗口中打开textmate / sublime text2编辑器中git / mercurial merge期间发生冲突的文件
答案 0 :(得分:3)
您可以使用以下命令在sublime文本中打开git合并冲突的所有文件:
git diff --name-only | uniq | xargs subl
答案 1 :(得分:0)
我想添加另一个答案。 git diff --name-only
将为您提供所有具有差异的文件。这就是为什么有时它会产生重复条目的原因,因为它将文件标记为“已修改”以及处于合并冲突状态。将其插入uniq
是一个很好的解决方案,但是git diff --name-only
还将包含您可能有意更改的文件,因此它实际上不会仅过滤具有合并冲突的文件。当您处于重新定级的过程中时,尽管我会说@StephanRodemeier的答案很有效,但这可能不会经常发生。
但是,您可以做的是利用--diff-filter
选项为文件分配状态。在文档中查看更多
--diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]]
仅选择已更改(A),已复制(C),已删除(D),已修改(M),已重命名(R),其类型(即常规文件,符号链接,子模块等)的文件( T),未合并(U),未知(X)或已配对(B)。可以使用过滤器字符的任何组合(包括无过滤器字符)。将*(全或无)添加到组合中时,如果在比较中有任何文件与其他条件匹配,则选择所有路径;如果没有符合其他条件的文件,则不会选择任何内容。
似乎文件处于both modified
状态时,差异状态设置为U
(未合并)和M
(已修改),因此您只能过滤未合并的文件。 / p>
git diff --diff-filter=U --name-only | xargs subl
无需插入uniq
您可以考虑的另一件事是,只需将编辑器添加到difftool
即可,将编辑器设置为.gitconfig
,即VSCode documentation specifies how to do this
[diff]
tool = default-difftool
[difftool "default-difftool"]
cmd = code --wait --diff $LOCAL $REMOTE