编辑git merge / rebase中的所有冲突文件(特殊字符安全)

时间:2016-10-18 15:25:11

标签: 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和文件名中的特殊字符一起使用。

1 个答案:

答案 0 :(得分:2)

许多命令都有-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 #"