2 votes

Modifier tous les fichiers conflictuels dans un git merge/rebase (sans caractères spéciaux)

Au milieu d'un git rebase J'ai un statut tel que :

$ 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

Comment puis-je ouvrir les fichiers avec des conflits (notés U ci-dessus) dans mon éditeur de texte avec une seule commande ?

La solution doit fonctionner avec \n et des caractères spéciaux dans les noms de fichiers.

2voto

Tom Hale Points 5950

De nombreuses commandes ont un -z , -0 ou --null possibilité de produire/consommer NUL -sortie terminée.

Utilisez les éléments suivants :

git status -sz  | sed -rnz 's/^(U.|.U) (.*)/\2/p' | xargs -0 $EDITOR

Ou en tant que gitconfig alias :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X