611 Stimmen

So finden Sie den nächstgelegenen Elternteil eines Git-Zweigs

Nehmen wir an, ich habe das folgende lokale Repository mit einem Commit-Baum wie diesem:

master --> a
            \
             \
      develop c --> d
               \
                \
         feature f --> g --> h

master ist mein dies ist der neueste stabile Release-Code , develop ist mein dies ist der "nächste" Freigabecode und feature ist eine neue Funktion, die in Vorbereitung ist für develop .

Mit Hilfe von Hooks möchte ich Pushes verweigern können an feature in mein entferntes Repository zu übertragen, es sei denn f ist ein direkter Abkömmling von develop HEAD. D.h. der Commit-Baum sieht so aus, weil das Feature git rebase auf d .

master --> a
            \
             \
      develop c --> d
                     \
                      \
               feature f --> g --> h

Ist es also möglich,:

  • Identifizieren Sie den übergeordneten Zweig von feature ?
  • Identifizieren Sie die Übertragung im übergeordneten Zweig, die f ist ein Nachkomme von?

Von dort aus würde ich prüfen, was HEAD des übergeordneten Zweigs ist, und sehen, ob f Vorgänger mit dem übergeordneten Zweig HEAD übereinstimmt, um festzustellen, ob das Merkmal neu geordnet werden muss.

-2voto

Eine Alternative:

git rev-list master | grep "$(git rev-list HEAD)" | head -1

Holen Sie sich den letzten Commit, dass es sowohl mein Zweig als auch master (oder welche Verzweigung Sie auch immer angeben wollen).

0 Stimmen

Ich erhalte den folgenden Fehler: bash: /usr/bin/grep: Argument list too long

0 Stimmen

Das beantwortet nicht die Frage, die darin besteht, den Namen des übergeordneten Zweigs zu ermitteln. Dies ergibt eine Übergabe, die zwischen 2 bekannten Zweigen gemeinsam ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X