在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 #"