web-dev-qa-db-fra.com

git rebase --editor = / quelque chose / autre / que / vim? (pour un écrasement plus facile)

J'utilise volontiers vim comme éditeur par défaut pour les validations et je ne souhaite pas le modifier. Cependant, quand il s'agit de rebaser, je me retrouve à écraser des dizaines et des dizaines de commits que je trouve beaucoup plus faciles avec un éditeur interactif comme Textwrangler (en remplaçant "pick" par "squash" en tout sauf le commit le plus haut).

Existe-t-il un moyen de spécifier un autre éditeur pour une commande de rebase unique?

Je sais en vim que je peux faire:

:%s/pick/squash/

mais cela a ses propres ennuis mineurs.

EDIT - comme indiqué dans les commentaires, vous pouvez écraser tout sauf le top commit très efficacement en allant sur la 2ème ligne et en exécutant

:,$s/pick/squash/

(notez que la virgule et le dollar sont différents de l'original)

45
Sridhar Sarnobat

Essayez d'ajouter le GIT_EDITOR variable d'environnement avant votre commande, comme ceci:

GIT_EDITOR=<editor of choice> git rebase <...>

Par exemple, pour utiliser nano, je taperais:

GIT_EDITOR=nano git rebase -i abcdef1234
57
Rob Bajorek

Il existe une option encore meilleure pour tous vos rebases interactifs.

https://github.com/sjurba/rebase-editor

Il s'agit d'une application CLI personnalisée écrite en nœud spécifiquement pour le rebase interactif.

À installer:

npm install -g rebase-editor
git config --global sequence.editor rebase-editor 

Ou avec du fil:

yarn global add rebase-editor
git config --global sequence.editor rebase-editor 
10
barsju