2016-07-21 21 views
5

Jetzt bin ich in einem Feature-Zweig, aber nicht, ob es von Entwicklung oder Release-Zweig erstellt wird.Wie bekomme ich git Parent Branch Name des aktuellen Zweigs?

Kann mir bitte sagen, wie kann ich Eltern Zweig Name des aktuellen git Zweig.

+1

nicht sicher, dass die Fragen gleich sind, aber Sie Antworten hier erhalten können http://stackoverflow.com/questions/3161204/find-the-parent-branch-of-a-git-branch –

+2

@ Md.KhairulHasan Die Frage ist eigentlich das selbe wie du direkt wieder mit dieser Frage verlinkt hast :) – DAXaholic

Antwort

4

Da Git einen gerichteten azyklischen Graphen verwendet und normalerweise ein Repo nur eine Wurzel hat, zeigen alle Zweige auf einen initialen Commit. Also, was Sie eigentlich wollen, ist der Zweig, der der größte Teil seiner Geschichte mit Ihrer Branche teilt.

Sie können nicht einfach nach einer Verzweigung suchen, deren HEAD in der Historie Ihres aktuellen Zweiges enthalten ist, da diese Verzweigungen HEAD höchstwahrscheinlich seither verschoben worden sind.

Sie also git merge-base Ich empfehle verwenden, die den neuesten gemeinsamen Vorfahren (aka Gabelpunkt) aus zwei Zweigen oder begeht findet:

$ git merge-base feature develop 
12345abc 
$ git merge-base feature release 
98765fed 

Dies wird geben die beiden Commits, die in der Geschichte beider Zweige erscheinen, beziehungsweise. Einer der beiden wird in beiden Zweige enthalten sein, so können Sie sie zu merge-base wieder füttern dem Festschreiben erhalten Sie wollen (oder besser gesagt, das man Sie nicht wollen): So

git merge-base 12345abc 98765fed 
98765fed 

In unserem Beispiel wurde feature von develop abgeleitet, da die beiden einen Commit teilen, den release nicht hat.

Beachten Sie, dass dies nur funktioniert, wenn Sie keine Überschneidungen zwischen Feature und Entwicklung machen.