J'essaie donc de créer un alias ZSH pour Git qui rebase ma branche actuelle sur la branche à l'origine de celle-ci.
Exemples:
Étant donné les noms de branche suivants de A
et B
. Si je crée une branche B
en demandant à A
de temps en temps je voudrais garder B
à jour avec A
.
Pour faire cela manuellement, je ferais habituellement:
git rebase A
Ce qui rembourserait les commits à partir de la fourche B
au dessus de A
.
Étant donné que je souhaite qu'une commande le fasse automatiquement pour toute branche sur laquelle je travaille, voici où je me dirigeais:
git rebase --onto A {commit-hash-of-fork-point} B
Je crois que cette commande donnera le fork point commit:
git merge-base --fork-point A B
Donc, en les combinant:
git rebase --onto A $(git merge-base --fork-point A B) B
Comment puis-je écrire cela comme un alias générique pour ZSH afin que je puisse simplement appeler gr
et il déterminera la branche actuelle, et la branche fourchue, etc.
gr() { git rebase --onto "$1" $(git merge-base --fork-point "$1" "$2") "$2" }
. Cela serait défini dans l'un des fichiers de démarrage.gr A B
se développera dans votre dernière commande combinée.