Ich würde keine Zweige archivieren. Mit anderen Worten: Zweige archivieren sich selbst. Sie wollen sicherstellen, dass die für Archäologen relevanten Informationen mit zuverlässigen Mitteln gefunden werden können. Zuverlässig insofern, als sie bei der täglichen Arbeit helfen und nicht einen zusätzlichen Schritt zur Erledigung der Arbeit hinzufügen. Das heißt, ich glaube nicht, dass die Leute daran denken werden, eine Markierung hinzuzufügen, wenn sie mit einem Zweig fertig sind.
Hier sind zwei einfache Schritte, die der Archäologie sehr helfen werden et Entwicklung.
- Verknüpfen Sie jeden Aufgabenzweig mit einem zugehörigen Problem im Problemverfolgungssystem unter Verwendung einer einfachen Namenskonvention .
- Verwenden Sie immer
git merge --no-ff
um Aufgabenzweige zusammenzuführen; Sie wollen die Zusammenführung von Commit und History Bubble, selbst für nur einen Commit.
Das war's. Warum? Weil ich als Code-Archäologe selten damit anfange, dass ich wissen will, welche Arbeiten an einem Zweig durchgeführt wurden. Sehr viel häufiger warum in aller Herrgottsfrühe ist der Code so geschrieben?! Ich muss den Code ändern, aber er hat einige merkwürdige Eigenschaften, und ich muss sie herausfinden, um nicht etwas Wichtiges zu zerstören.
Der nächste Schritt ist git blame
um die zugehörigen Übertragungen zu finden, und hoffe dann, dass die Protokollmeldung aussagekräftig ist. Wenn ich tiefer graben muss, finde ich heraus, ob die Arbeit in einem Zweig gemacht wurde und lese den Zweig als Ganzes (zusammen mit dem Kommentar im Issue Tracker).
Sagen wir git blame
zeigt auf die Verpflichtung XYZ. Ich öffne einen Git-Verlaufsbrowser (gitk, GitX, git log --decorate --graph
, etc...), finden Sie Commit XYZ und sehen Sie...
AA - BB - CC - DD - EE - FF - GG - II ...
\ /
QQ - UU - XYZ - JJ - MM
Da ist mein Zweig! Ich weiß, dass QQ, UU, XYZ, JJ und MM alle Teil desselben Zweigs sind und ich sollte mir ihre Logmeldungen für Details ansehen. Ich weiß, dass GG ein Merge-Commit sein wird und den Namen des Zweigs hat, der hoffentlich mit einem Problem im Tracker verbunden ist.
Wenn ich aus irgendeinem Grund einen alten Zweig finden möchte, kann ich Folgendes ausführen git log
und suchen Sie nach dem Namen des Zweigs in der Zusammenführungsübergabe. Das ist selbst bei sehr großen Repositories schnell genug.
Das ist es, was ich meine, wenn ich sage, dass die Zweige sich selbst archivieren.
Die Kennzeichnung jedes Zweigs bedeutet unnötigen Mehraufwand bei der Erledigung von Aufgaben (ein kritischer Prozess, der rücksichtslos gestrafft werden sollte), überfrachtet die Tag-Liste (nicht im Hinblick auf die Leistung, sondern auf die Lesbarkeit) mit Hunderten von Tags, die nur gelegentlich nützlich sind, und ist nicht einmal für die Archäologie sehr nützlich.