编辑git合并/重基中的所有冲突文件(特殊字符安全)

编辑git合并/重基中的所有冲突文件(特殊字符安全),git,shell,git-merge,git-rebase,Git,Shell,Git Merge,Git Rebase,在git-rebase中间,我的状态如下: $ git status --short M lib/tmuxinator.rb UU lib/tmuxinator/cli.rb UU lib/tmuxinator/config.rb A spec/fixtures/TMUXINATOR_CONFIG/TMUXINATOR_CONFIG.yml M tmuxinator.gemspec 如何使用单个命令在文本编辑器中打开有冲突的文件(上面表示为U) 解决方案必须使用\n和文件名中的特殊字符。

git-rebase
中间,我的状态如下:

$ git status --short
M  lib/tmuxinator.rb
UU lib/tmuxinator/cli.rb
UU lib/tmuxinator/config.rb
A  spec/fixtures/TMUXINATOR_CONFIG/TMUXINATOR_CONFIG.yml
M  tmuxinator.gemspec
如何使用单个命令在文本编辑器中打开有冲突的文件(上面表示为
U


解决方案必须使用
\n
和文件名中的特殊字符。

许多命令都有
-z
-0
-null
选项来生成/使用
NUL
终止的输出

使用以下命令:

git status -sz  | sed -rnz 's/^(U.|.U) (.*)/\2/p' | xargs -0 $EDITOR
或者作为
gitconfig
别名:

[alias]
  resolve=!"git status -sz  | sed -rnz 's/^(U.|.U) (.*)/\\2/p' | xargs -0 $EDITOR #"

“编辑文件”是什么意思?是否要在文本编辑器中打开它们?或者您正在尝试以某种方式自动解决合并冲突?谢谢,我已经澄清了。但是,如果您有任何关于自动解析的提示,请告诉我!