Sublimetext2 如何在textmate/sublime中的git/mercurial合并期间打开有冲突的文件

Sublimetext2 如何在textmate/sublime中的git/mercurial合并期间打开有冲突的文件,sublimetext2,textmate,Sublimetext2,Textmate,如何从终端窗口仅打开textmate/sublime text2编辑器中git/mercurial合并期间发生冲突的文件您可以使用以下方法打开sublime文本中发生git合并冲突的所有文件: git diff --name-only | uniq | xargs subl 我想补充另一个答案git diff——仅限名称将为您提供所有具有差异的文件。这就是为什么有时它会产生重复的条目,因为它将文件标记为“已修改”以及处于合并冲突状态。将其管道化到uniq是一个很好的解决方案,但是git dif

如何从终端窗口仅打开textmate/sublime text2编辑器中git/mercurial合并期间发生冲突的文件

您可以使用以下方法打开sublime文本中发生git合并冲突的所有文件:

git diff --name-only | uniq | xargs subl

我想补充另一个答案
git diff——仅限名称
将为您提供所有具有差异的文件。这就是为什么有时它会产生重复的条目,因为它将文件标记为“已修改”以及处于合并冲突状态。将其管道化到
uniq
是一个很好的解决方案,但是
git diff--name only
还将包括您可能有意更改的文件,因此它实际上不会只过滤有合并冲突的文件。当你处于重新基地的时候,这很可能不会经常发生,尽管我会说,在大多数情况下,斯蒂芬罗德梅尔的回答是有效的。 但是,您可以利用为文件指定状态的选项。请参阅文档中的更多内容

--diff filter=[(A | C | D | M | R | T | U | X | B)…​[*]

仅选择添加(A)、复制(C)、删除(D)、修改(M)、重命名(R)且具有其类型的文件(即常规文件、符号链接、子模块等)…​) 已更改(T)、未合并(U)、未知(X)或其配对已断开(B)。可以使用筛选字符的任意组合(包括无)。当*(全部或无)添加到组合中时,如果比较中有任何文件与其他条件匹配,则选择所有路径;如果没有与其他条件匹配的文件,则不选择任何内容

似乎当文件处于
均已修改
状态时,差异状态设置为
U
(未合并)和
M
(已修改),因此您可以仅筛选未合并的文件

git diff --diff-filter=U --name-only | xargs subl
无需管道进入uniq即可工作

您可以考虑的另一件事是将编辑器设置为<代码> Debug工具>代码>,即将其添加到<代码> > GITCONFIG

[diff]
    tool = default-difftool
[difftool "default-difftool"]
    cmd = code --wait --diff $LOCAL $REMOTE