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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.