So prüfen Sie, ob ein Git-Branch im Remote-Repository gelöscht wurde

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 prüfen können, ob ein Git-Branch in einem Remote-Repository gelöscht wurde. Wir werden die wesentlichen Schritte abdecken, um die Ansicht Ihres lokalen Repositorys über das Remote-Repository zu aktualisieren, die verfügbaren Remote-Branches aufzulisten und ihre Existenz mithilfe verschiedener Git-Befehle zu überprüfen.

Sie beginnen damit, git fetch --prune zu verwenden, um Ihr lokales Repository mit dem Remote-Repository zu synchronisieren und alle veralteten Remote-Tracking-Branches zu entfernen. Dann verwenden Sie git branch -r, um die Remote-Tracking-Branches aufzulisten, die jetzt in Ihrem lokalen Repository widergespiegelt werden. Schließlich lernen Sie, wie Sie git ls-remote verwenden, um direkt das Remote-Repository nach einem bestimmten Branch abzufragen, was eine alternative Methode zur Überprüfung darstellt.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git(("Git")) -.-> git/CollaborationandSharingGroup(["Collaboration and Sharing"]) git/BranchManagementGroup -.-> git/branch("Handle Branches") git/CollaborationandSharingGroup -.-> git/fetch("Download Updates") git/CollaborationandSharingGroup -.-> git/remote("Manage Remotes") subgraph Lab Skills git/branch -.-> lab-560044{{"So prüfen Sie, ob ein Git-Branch im Remote-Repository gelöscht wurde"}} git/fetch -.-> lab-560044{{"So prüfen Sie, ob ein Git-Branch im Remote-Repository gelöscht wurde"}} git/remote -.-> lab-560044{{"So prüfen Sie, ob ein Git-Branch im Remote-Repository gelöscht wurde"}} end

Ausführen von git fetch --prune zum Aktualisieren

In diesem Schritt lernen wir, wie wir unser lokales Git-Repository mit den neuesten Änderungen aus einem Remote-Repository aktualisieren können. Stellen Sie sich vor, Sie arbeiten an einem Projekt mit anderen Personen, die Änderungen vorgenommen und auf einen zentralen Server gepusht haben. Sie müssen eine Möglichkeit finden, diese Änderungen in Ihre lokale Kopie zu übertragen.

Der Befehl, den wir dafür verwenden, ist git fetch. Dieser Befehl lädt Commits, Dateien und Refs aus einem Remote-Repository in Ihr lokales Repository herunter. Es ist wie das Abrufen der neuesten Updates vom Server, ohne sie tatsächlich in Ihre aktuelle Arbeit zu integrieren.

Wir verwenden auch die Option --prune. Diese Option entfernt alle Remote-Tracking-Branches, die nicht mehr im Remote-Repository existieren. Dies hilft, Ihre Liste der Remote-Branches sauber und aktuell zu halten.

Nehmen wir an, Sie haben ein Remote-Repository konfiguriert (wie man Remotes hinzufügt, werden wir in einem zukünftigen Lab behandeln). Vorerst simulieren wir das Abrufen von einem Remote-Repository.

Öffnen Sie Ihr Terminal, stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine befinden, und führen Sie den folgenden Befehl aus:

cd ~/project/my-time-machine
git fetch --prune origin

Möglicherweise sehen Sie eine Ausgabe ähnlich der folgenden (die genaue Ausgabe hängt vom Remote-Repository ab):

From origin
 * [new branch]      feature/new-feature -> origin/feature/new-feature
 - [deleted]         (none)              -> origin/old-branch

Diese Ausgabe zeigt, dass Git neue Branches (feature/new-feature) abgerufen und Branches entfernt hat, die nicht mehr im Remote-Repository existieren (old-branch).

Das Ausführen von git fetch --prune ist eine gute Praxis, um Ihre lokale Ansicht des Remote-Repositorys genau zu halten. Es ermöglicht Ihnen, zu sehen, welche Änderungen von anderen vorgenommen wurden, bevor Sie entscheiden, sie in Ihre eigene Arbeit zu integrieren.

Prüfen der Remote-Branches mit git branch -r

Im vorherigen Schritt haben wir git fetch --prune verwendet, um unser lokales Repository mit Informationen aus dem Remote-Repository zu aktualisieren. Jetzt schauen wir uns an, welche Remote-Branches in unserem lokalen Repository verfügbar sind, nachdem wir die Daten abgerufen haben.

Wir können die Remote-Tracking-Branches mit dem git branch-Befehl und der Option -r auflisten. Dieser Befehl zeigt Ihnen die Branches an, die Git aus Remote-Repositories abgerufen hat.

Stellen Sie sicher, dass Sie sich immer noch im Verzeichnis ~/project/my-time-machine befinden, und führen Sie den folgenden Befehl aus:

cd ~/project/my-time-machine
git branch -r

Sie sollten eine Liste von Remote-Branches sehen, die normalerweise mit dem Namen des Remotes (z. B. origin) und dann dem Namen des Branches beginnen. Beispielsweise:

  origin/master
  origin/feature/new-feature

Diese Ausgabe informiert Sie über die Branches, die im Remote-Repository (in diesem Fall origin) existieren und über die Ihr lokales Git Informationen hat. Dies sind keine lokalen Branches, an denen Sie direkt arbeiten können; es sind Verweise auf den Zustand der Branches im Remote-Repository.

Das Verständnis von Remote-Tracking-Branches ist wichtig, da sie den Zustand des Remote-Repositorys zum Zeitpunkt des letzten git fetch oder git pull darstellen. Sie ermöglichen es Ihnen, zu sehen, was im Remote-Repository passiert, ohne Ihre lokalen Arbeits-Branches zu beeinflussen.

Überprüfung mit git ls-remote

Im vorherigen Schritt haben wir git branch -r verwendet, um die Remote-Tracking-Branches in unserem lokalen Repository anzuzeigen. Ein weiterer nützlicher Befehl, um die Referenzen in einem Remote-Repository anzuzeigen, ist git ls-remote.

Im Gegensatz zu git fetch, das die Objekte herunterlädt, listet git ls-remote einfach die Referenzen (wie Branches und Tags) in einem Remote-Repository auf, ohne sie abzurufen. Dies ist nützlich, um schnell zu überprüfen, was im Remote-Repository verfügbar ist, ohne Ihre lokale Kopie zu aktualisieren.

Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine befinden, und führen Sie den folgenden Befehl aus, wobei Sie den Namen des Remotes angeben (typischerweise origin):

cd ~/project/my-time-machine
git ls-remote origin

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 HEAD
a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 refs/heads/master
f0e1d2c3b4a59687765443210fedcba987654321 refs/heads/feature/new-feature

Diese Ausgabe zeigt den Commit-Hash gefolgt vom Namen der Referenz. HEAD zeigt normalerweise auf den Standard-Branch im Remote-Repository (oft master oder main). refs/heads/ gibt einen Branch an, und refs/tags/ würde einen Tag anzeigen.

Das Vergleichen der Ausgabe von git branch -r und git ls-remote kann Ihnen helfen, den Unterschied zwischen dem, was tatsächlich im Remote-Repository ist (git ls-remote), und dem, was Ihr lokales Repository über das Remote-Repository nach dem letzten Abruf weiß (git branch -r), zu verstehen.

Dieser Befehl ist eine schnelle Möglichkeit, einen Blick auf die Struktur des Remote-Repositorys zu werfen, ohne einen vollständigen Abruf-Vorgang durchzuführen.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob ein Git-Branch in einem Remote-Repository gelöscht wurde. Der erste entscheidende Schritt besteht darin, die Sicht auf das Remote-Repository in unserem lokalen Repository mit git fetch --prune zu aktualisieren. Dieser Befehl lädt die neuesten Informationen aus dem Remote-Repository herunter und entfernt wichtigerweise alle lokalen Remote-Tracking-Branches, die im Remote-Repository nicht mehr existieren, um sicherzustellen, dass unsere lokale Sicht auf das Remote-Repository korrekt ist.

Nachdem wir die Daten abgerufen und die nicht mehr existierenden Branches entfernt haben, können wir Befehle wie git branch -r verwenden, um die Remote-Tracking-Branches aufzulisten, die noch in unserem lokalen Repository vorhanden sind. Indem wir die Ausgabe vor und nach dem Abruf vergleichen oder einfach die entfernten Branches während des Abrufs beobachten, können wir feststellen, ob ein bestimmter Branch im Remote-Repository gelöscht wurde.