GIT - Wie man eine Datei in allen Zweigen gemeinsam verwendet

7

Angenommen, ich habe eine Datei "ChangeLog" im Zweig "master". Ich möchte Informationen über alle Änderungen in jedem Zweig in dieser Datei aufzeichnen (genauer als in einer Commit-Nachricht und mit anderen beschreibenden Informationen).

I git checkout -b revA , führe Bearbeitungen durch, aktualisiere ChangeLog und git commit .

Ich habe dann git checkout -b master . Dieser Checkout ersetzt ChangeLog durch die Version im Zweig "master".

Was ich möchte, ist, dass ChangeLog automatisch die zuletzt geänderte Version ist, unabhängig davon, welcher Zweig ich ausgecheckt habe. Ich möchte ChangeLog von einer anderen Verzweigung in meine aktuelle Verzweigung nicht manuell zusammenführen (oder höchstwahrscheinlich vergessen).

Ich habe nichts gefunden, was dies zulässt. Ist es möglich, dies zu tun?

    
themis 09.12.2009, 19:13
quelle

4 Antworten

8

Sie können einen Post-Checkout-Hook verwenden:

%Vor%

Es liegt immer noch an Ihnen, das ChangeLog in Ihrem Zweig hinzuzufügen und zu committen, falls dies angebracht ist.

Dieser Haken sortiert Zweige nach den entsprechenden Commit-Daten ihres Kopfes, was problematisch sein könnte. Nehmen wir an, Sie erstellen einen Themenzweig, der auf einem Commit im Verlauf des Masters basiert. Obwohl der Snapshot von ChangeLog im Sinne der Kalenderzeit älter ist, behandelt der obige Hook ihn als den neuesten, da auf ihn von einem kürzlich erstellten Commit verwiesen wird, also darauf achten, dass Sie dies nicht tun Versehentlich Arbeit verlieren durch den Wechsel von Zweigen, wenn Sie Änderungen an ChangeLog nicht hochgeladen haben.

    
Greg Bacon 09.12.2009, 22:29
quelle
7

Ich weiß, dass diese Antwort die Frage aufwirft, aber ich denke, dass alles andere sich für einen Pflegekopfschmerz aufrichtet.

Wenn Sie Ihren Commit-Nachrichten eine ausreichende Beschreibung geben, dann entspricht git log der Anforderung. Alle Änderungen, die sich in einem bestimmten Zweig befinden, werden genau durch die Commits beschrieben, die darin enthalten sind, und es ist unmöglich, dass sie veraltet sind oder Beschreibungen für Änderungen, die nicht darin enthalten sind, enthalten.

Seit ich zu git gewechselt bin, habe ich es aufgegeben, ein Änderungsprotokoll manuell zu verwalten. Für mich hatte es keinen Wert und keine signifikanten Kosten.

Es gibt keinen Grund, keine vollständigen Beschreibungen in Commits zu schreiben. Mit --amend können Sie Rechtschreibfehler korrigieren und Details hinzufügen. Wenn Sie sich an die Konvention halten, eine kurze Betreffzeile und eine ausführlichere Beschreibung zu haben, können Sie zwischen kurzen und langen Protokollformaten wählen.

    
Charles Bailey 09.12.2009 22:48
quelle
3

Legen Sie es in ein separates Repository und verwenden Sie ein Submodul Verknüpfen Sie es in jedem Zweig.

    
Steven Schlansker 09.12.2009 19:22
quelle
2

Schreiben Sie einen Post-Commit-Hook, um die Datei in die anderen Zweige zu integrieren. Ссылка

    
Mark Carey 09.12.2009 19:33
quelle

Tags und Links