So prüfen Sie, ob ein Git-Branch veraltet ist

GitGitBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie überprüfen können, ob ein Git-Branch veraltet ist, indem Sie das Datum seines letzten Commits untersuchen. Sie beginnen damit, den grundlegenden Befehl git log zu verwenden, um die Commit-Historie anzuzeigen und das Datum des letzten Commits auf einem Branch zu ermitteln.

Als Nächstes werden Sie den leistungsfähigeren Befehl git for-each-ref erkunden, um effizient das Datum des letzten Commits für mehrere Branches abzurufen. Schließlich lernen Sie, wie Sie die Aktivität verschiedener Branches vergleichen können, um festzustellen, welche von ihnen als veraltet angesehen werden könnten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BranchManagementGroup -.-> git/branch("Handle Branches") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills git/branch -.-> lab-560050{{"So prüfen Sie, ob ein Git-Branch veraltet ist"}} git/log -.-> lab-560050{{"So prüfen Sie, ob ein Git-Branch veraltet ist"}} end

Überprüfen des Datums des letzten Commits mit git log

In diesem Schritt verwenden wir den Befehl git log, um das Datum des letzten Commits in unserem Repository zu überprüfen. Dies ist eine grundlegende Fähigkeit, um die Geschichte Ihres Projekts zu verstehen.

Stellen Sie zunächst sicher, dass Sie sich im Verzeichnis my-time-machine befinden. Wenn nicht, verwenden Sie den Befehl cd, um dorthin zu navigieren:

cd ~/project/my-time-machine

Nun verwenden wir git log, um die Commit-Historie anzuzeigen. Wir fügen eine Option hinzu, um die Ausgabe kompakter zu gestalten und nur eine Zeile pro Commit anzuzeigen. Dies ist sehr nützlich, wenn Sie viele Commits haben.

git log --oneline

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

a1b2c3d (HEAD -> master) Send a message to the future

Diese Ausgabe zeigt den abgekürzten Commit-Hash (a1b2c3d), den Branch, auf dem sich der Commit befindet (HEAD -> master), und die Commit-Nachricht.

Um mehr Details, einschließlich des Datums und der Uhrzeit des Commits, anzuzeigen, können Sie den Befehl git log ohne zusätzliche Optionen verwenden:

git log

Die Ausgabe wird ähnlich derjenigen sein, die Sie im vorherigen Lab gesehen haben und zeigt die vollständigen Commit-Details:

commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Jane Doe <[email protected]>
Date:   Mon Aug 7 10:00:00 2023 +0000

    Send a message to the future

Die Zeile Date zeigt an, wann der Commit vorgenommen wurde. Dies ist entscheidend, um den Fortschritt Ihres Projekts zu verfolgen und die Zeitlinie der Änderungen zu verstehen.

Das Verständnis von git log ist unerlässlich, um sich in der Geschichte Ihres Projekts zurechtzufinden. Es ermöglicht Ihnen, zu sehen, wann Änderungen vorgenommen wurden, wer sie vorgenommen hat und worum es sich bei den Änderungen handelt (basierend auf der Commit-Nachricht). Mit der wachsenden Größe Ihres Projekts wird dieses Log zu einem unschätzbaren Werkzeug für das Debugging, die Zusammenarbeit und das Verständnis der Entwicklung Ihres Codes.

Verwenden von git for-each-ref für die Branch-Aktivität

In diesem Schritt werden wir einen fortgeschrittenen Git-Befehl, git for-each-ref, erkunden, um detaillierte Informationen über unsere Branches zu erhalten, einschließlich des Datums des letzten Commits auf jedem Branch. Dieser Befehl ist sehr leistungsfähig für das Skripten und die Anpassung der Git-Ausgabe.

Stellen Sie sicher, dass Sie sich immer noch im Verzeichnis ~/project/my-time-machine befinden.

Der Befehl git for-each-ref ermöglicht es Ihnen, über alle Referenzen (wie Branches und Tags) in Ihrem Repository zu iterieren und Informationen über sie in einem angegebenen Format anzuzeigen.

Lassen Sie uns ihn verwenden, um unsere Branches und das Datum ihres letzten Commits aufzulisten. Wir geben das Format an, um das Datum des Committers und den Branch-Namen anzuzeigen.

git for-each-ref --sort=-committerdate refs/heads/ --format='%(committerdate:short) %(refname:short)'

Lassen Sie uns diesen Befehl zerlegen:

  • git for-each-ref: Der Befehl selbst.
  • --sort=-committerdate: Dies sortiert die Ausgabe nach dem Datum des Committers in absteigender Reihenfolge (neueste zuerst). Das Minuszeichen - vor committerdate gibt die absteigende Reihenfolge an.
  • refs/heads/: Dies teilt Git mit, nur auf Referenzen unter refs/heads/ zu schauen, die unsere lokalen Branches sind.
  • --format='%(committerdate:short) %(refname:short)': Dies gibt das Ausgabeformat an.
    • %(committerdate:short): Zeigt das Datum des Committers in einem kurzen Format (YYYY-MM-DD) an.
    • %(refname:short): Zeigt den kurzen Namen der Referenz (den Branch-Namen) an.

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

YYYY-MM-DD master

Das angezeigte Datum ist das Datum des letzten Commits auf dem master-Branch, der der Commit ist, den wir im vorherigen Lab erstellt haben.

Während git log hervorragend geeignet ist, um die Historie eines einzelnen Branches oder einiger Commits anzuzeigen, ist git for-each-ref nützlich, wenn Sie spezifische Informationen über mehrere Referenzen in strukturierter Weise erhalten möchten. Dies ist besonders hilfreich in größeren Projekten mit vielen Branches.

Das Verständnis, wie man git for-each-ref mit verschiedenen Formatoptionen verwendet, eröffnet viele Möglichkeiten für das Skripten und die Automatisierung von Aufgaben im Zusammenhang mit Ihrem Git-Repository.

Vergleich mit aktiven Branches

In diesem Schritt werden wir die Informationen vergleichen, die wir von git log und git for-each-ref erhalten haben, und verstehen, wie sie sich auf das Konzept der "aktiven" Branches beziehen.

Stellen Sie sicher, dass Sie sich immer noch im Verzeichnis ~/project/my-time-machine befinden.

Wir haben gesehen, dass git log standardmäßig die Historie des aktuellen Branches anzeigt und git for-each-ref refs/heads/ Informationen über alle lokalen Branches zeigt. In unserem aktuellen einfachen Repository haben wir nur einen Branch, master, daher wird das Datum des letzten Commits, das von beiden Befehlen angezeigt wird, das gleiche sein.

Lassen Sie uns den git for-each-ref-Befehl erneut ausführen, um die Ausgabe erneut zu sehen:

git for-each-ref --sort=-committerdate refs/heads/ --format='%(committerdate:short) %(refname:short)'

Ausgabe:

YYYY-MM-DD master

Und den git log --oneline-Befehl:

git log --oneline

Ausgabe:

a1b2c3d (HEAD -> master) Send a message to the future

Beide Befehle bestätigen, dass die letzte Aktivität (der letzte Commit) in unserem Repository auf dem master-Branch liegt, und sie zeigen das Datum dieses Commits an.

In einem realen Projekt mit mehreren Branches ist git for-each-ref refs/heads/, sortiert nach dem Datum des Committers, ein schneller Weg, um zu sehen, welche Branches kürzlich aktiv waren. Die Branches oben auf der Liste sind diejenigen, an denen am kürzesten gearbeitet wurde.

Der Vergleich dieser Ausgabe mit der Ausgabe von git log für bestimmte Branches hilft Ihnen, die Gesamtaktivität im Repository und die spezifische Historie einzelner Branches zu verstehen.

Beispielsweise könnten Sie, wenn Sie einen anderen Branch namens feature-x hätten, git log feature-x --oneline ausführen, um seine spezifische Historie zu sehen und sein Datum des letzten Commits mit dem Datum zu vergleichen, das von git for-each-ref angezeigt wird.

Diese Fähigkeit, die jüngste Aktivität über alle Branches schnell zu sehen, ist für Projektmanager und Teamleiter sehr hilfreich, um einen Überblick über den Entwicklungsfortschritt zu erhalten.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob ein Git-Branch veraltet ist, indem man seine Aktivität untersucht. Wir haben begonnen, indem wir den grundlegenden git log-Befehl verwendet haben, um die Commit-Historie anzuzeigen und speziell das Datum des letzten Commits auf einem Branch zu identifizieren. Dies hat uns ein grundlegendes Verständnis der jüngsten Aktivität vermittelt.

Anschließend sind wir zum leistungsfähigeren git for-each-ref-Befehl übergegangen, der es uns ermöglicht, detaillierte Informationen über alle Branches abzurufen, einschließlich des Datums ihres letzten Commits. Dieser Befehl ist besonders nützlich, um die Aktivität über mehrere Branches systematisch zu bewerten und diejenigen zu identifizieren, die in letzter Zeit nicht aktualisiert wurden.