Wie kann ein Zweig von einem vorherigen Zweig in einem Befehl rebasiert werden?

579
Camsoft

Ich versuche also, einen ZSH-Alias ​​für Git zu entwickeln, der meinen aktuellen Zweig auf den Zweig zurückführt, von dem er ursprünglich abgeleitet wurde.

Beispiele:

Gegeben die folgenden Zweignamen von Aund B. Wenn ich von Zeit zu Zeit einen Zweig Bdurch Verzweigung erstelle, Amöchte ich mich Bauf dem Laufenden halten A.

Um dies manuell durchzuführen, würde ich normalerweise Folgendes tun:

git rebase A 

Was würde die Commits vom Gabelungspunkt Bauf oben zurückzahlen A.

Da ich möchte, dass ein Befehl dies automatisch für jeden Zweig tut, an dem ich gerade arbeite, ging ich hin:

git rebase --onto A B 

Ich glaube, dass dieser Befehl den Gabelpunkt begehen wird:

git merge-base --fork-point A B 

So kombinieren sie:

git rebase --onto A $(git merge-base --fork-point A B) B 

Wie kann ich das als generischen Alias ​​für ZSH schreiben, so dass ich einfach anrufen kann grund der aktuelle Zweig und der verzweigte Zweig usw. ermittelt werden.

0
Sie können keine Parameter in Aliasnamen angeben, jedoch können Sie stattdessen eine Funktion verwenden: `gr () `. Dies würde in einer der Startdateien definiert. AFH vor 5 Jahren 2
Wie würde ich das in ein Alias ​​umwandeln und es dann nennen? Camsoft vor 5 Jahren 0
Sie nennen es nicht als Alias, sondern als Funktion, obwohl der Aufruf gleich aussieht. Zum Beispiel wird 'gr AB' zu Ihrem endgültigen kombinierten Befehl erweitert. AFH vor 5 Jahren 0

0 Antworten auf die Frage