Я пытаюсь настроить немного
Когда я ввожу в состоянии мерзавца на командной строке, я получаю список файлов, которые должны быть разрешены как так:
# Unmerged paths: #
# (use "git reset HEAD <file>..." to unstage)
# (use "git add <file>..." to mark resolution)
#
# both modified: apache2/templates/default/apache2.conf.erb
# both modified: bootstrap/attributes/default.rb
# both modified: iptables/metadata.rb
# both modified: kickstart/templates/default/ks.cfg.erb
# both modified: openssl/metadata.json
# both modified: postfix/metadata.json
# both modified: postfix/templates/default/main.cf.erb
Существует ли простой способ передать этот список путей к файлам к текстовому редактору, таким образом, можно отредактировать их, все в одном идут?
Я могу добраться до этого, например, путем простой передачи по каналу его через grep:
[17:37]:git status | grep "both modified"
# both modified: apache2/templates/default/apache2.conf.erb
# both modified: bootstrap/attributes/default.rb
# both modified: iptables/metadata.rb
# both modified: kickstart/templates/default/ks.cfg.erb
# both modified: openssl/metadata.json
# both modified: postfix/metadata.json
# both modified: postfix/templates/default/main.cf.erb
Но я не уверен, как возвратиться, это использование просто окружают команды, или является ли самым простым заскочить в рубин или Python, передать каждую строку через regexp, отфильтровать # both modified:
.
Конечный результат, который я хочу, является чем-то вроде этого:
vim #{space_separated_list_of_files}
Как был бы Вы парни делать это?
Вот пара псевдонимов, которые у меня есть в моем gitconfig, взятых из git wiki :
edit-unmerged = \
"!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; vim `f`"
add-unmerged = \
"!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; git add `f`"
Должен делать то, что вы хотите!
Самое короткое, что я могу придумать:
vim `git status|grep 'both modified'|cut -d: -f2`
Вы знаете о команде git mergetool? Это не открывает все файлы за один раз, а выполняет итерацию по всем необходимым файлам, которые могут быть только тем, что вам нужно. Вы даже можете использовать vim для слияния
git mergetool --tool = vimdiff