¿Cuál es la forma más sencilla de editar files en conflicto de una vez al usar git y un editor como Vim o textmate?

Estoy tratando de modificar un poco

Cuando escribo el estado de git en la command-line, obtengo una list de los files que deben resolverse así:

# 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 

¿Existe una manera simple de pasar esta list de routes de files a un editor de text, para que pueda editarlas todas de una vez?

Puedo llegar a esto, por ejemplo, simplemente conectándolo a través de 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 

Pero no estoy seguro de cómo devolver esto usando solo commands de shell, o si es más simple caer en ruby ​​o python, pasar cada línea a través de una expresión regular, para filtrar el # both modified:

El resultado final que quiero es algo como esto:

 vim #{space_separated_list_of_files} 

¿Cómo harían esto?

Aquí hay un par de alias que tengo en mi gitconfig, tomados de la wiki de git :

 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`" 

Debe hacer lo que quiera!

Lo más corto que puedo pensar:

 vim `git status|grep 'both modified'|cut -d: -f2` 

¿Conoces el command git mergetool? Eso no abre todos los files de una vez, sino que itera en todos los files necesarios, que podrían ser solo lo que necesita. Incluso puedes usar vim para hacer la fusión

git mergetool –tool = vimdiff