Comment rebaser une branche de fork précédente en une seule commande?

0

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.

Camsoft
la source
2
Vous ne pouvez pas spécifier de paramètres dans des alias, mais vous pouvez utiliser une fonction à la place: 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.
AFH
Comment pourrais-je transformer cela en un alias et l'appeler ensuite?
Camsoft
Vous n'appelez pas cela comme un alias: vous l'appelez comme une fonction, même si l'appel aura le même aspect; par exemple gr A B se développera dans votre dernière commande combinée.
AFH