So prüfen Sie, ob eine Git-Branch auf einem Remote-Repository existiert

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 werden Sie lernen, wie Sie prüfen können, ob ein bestimmter Git-Branch (Git-Zweig) in einem Remote-Repository (Fremd-Repository) existiert. Wir werden zwei Hauptmethoden zur Erreichung dieses Ziels untersuchen.

Zunächst verwenden Sie den Befehl git ls-remote, um die Referenzen, einschließlich der Branches, in einem Remote-Repository zu untersuchen, indem Sie dessen URL angeben. Dadurch können Sie sehen, was im Remote-Repository verfügbar ist, ohne es klonen zu müssen. Anschließend lernen Sie, wie Sie den Befehl git branch -r verwenden, um die Remote-Branches aufzulisten, die von Ihrem lokalen Repository verfolgt werden. Abschließend wenden Sie diese Techniken an, um die Existenz eines bestimmten Branches in einem Remote-Repository zu überprüfen.


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-560036{{"So prüfen Sie, ob eine Git-Branch auf einem Remote-Repository existiert"}} git/fetch -.-> lab-560036{{"So prüfen Sie, ob eine Git-Branch auf einem Remote-Repository existiert"}} git/remote -.-> lab-560036{{"So prüfen Sie, ob eine Git-Branch auf einem Remote-Repository existiert"}} end

Ausführen von git ls-remote zur Prüfung des Remote-Repositorys

In diesem Schritt werden Sie lernen, wie Sie die Remote-Repositories (Fremd-Repositories) prüfen können, die mit Ihrem lokalen Git-Repository verknüpft sind. Ein Remote-Repository ist im Wesentlichen eine Version Ihres Projekts, die im Internet oder in einem Netzwerk gehostet wird, beispielsweise auf Plattformen wie GitHub, GitLab oder Bitbucket. Es ermöglicht Ihnen die Zusammenarbeit mit anderen und die Sicherung Ihrer Arbeit.

Um die für Ihr aktuelles Projekt konfigurierten Remote-Repositories anzuzeigen, können Sie den Befehl git remote verwenden. Um jedoch detailliertere Informationen über das Remote-Repository zu erhalten, einschließlich der verfügbaren Referenzen (wie Branches und Tags), verwenden wir den Befehl git ls-remote.

Zunächst stellen wir sicher, dass wir uns im Verzeichnis unseres Projekts befinden. Öffnen Sie Ihr Terminal und navigieren Sie zum Verzeichnis my-time-machine:

cd ~/project/my-time-machine

Nun verwenden wir git ls-remote, um ein Remote-Repository zu prüfen. In diesem Beispiel verwenden wir ein öffentliches Git-Repository. Geben Sie den folgenden Befehl ein:

git ls-remote https://github.com/labex-io/example-repo.git

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 HEAD
a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 refs/heads/main
... (andere Referenzen)

Dieser Befehl kontaktiert das Remote-Repository unter der angegebenen URL und listet alle verfügbaren Referenzen (wie Branches und Tags) zusammen mit ihren entsprechenden Commit-Hashes auf. Die HEAD-Referenz zeigt normalerweise auf die Standard-Branch (oft main oder master).

Das Verständnis von git ls-remote ist nützlich, wenn Sie ein Remote-Repository untersuchen möchten, ohne es vollständig zu klonen. Es gibt Ihnen einen schnellen Überblick über die auf dem Remote-Repository verfügbaren Branches und Tags.

Verwenden von git branch -r zum Auflisten von Remote-Branches

Im vorherigen Schritt haben wir git ls-remote verwendet, um die Referenzen in einem Remote-Repository (Fremd-Repository) anzuzeigen, indem wir dessen URL angegeben haben. Eine andere gängige Methode, um Remote-Branches (Fremd-Zweige) anzuzeigen, insbesondere für Remotes, die Sie bereits zu Ihrem lokalen Repository hinzugefügt haben, ist die Verwendung des git branch-Befehls mit der -r-Option.

Der git branch-Befehl wird hauptsächlich verwendet, um lokale Branches aufzulisten, zu erstellen oder zu löschen. Das Hinzufügen der -r-Option teilt Git mit, die Remote-Tracking-Branches (Fremd-Verfolgungs-Zweige) aufzulisten. Remote-Tracking-Branches sind Referenzen in Ihrem lokalen Repository, die den Zustand der Branches in einem Remote-Repository verfolgen. Sie werden automatisch aktualisiert, wenn Sie Git-Operationen wie fetch oder pull ausführen.

Da unser aktuelles my-time-machine-Repository noch keine Remotes hinzugefügt hat, fügen wir zunächst ein Remote hinzu, damit wir git branch -r verwenden können. Wir fügen dasselbe Beispiel-Repository hinzu, das wir im vorherigen Schritt verwendet haben, als Remote mit dem Namen origin.

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

cd ~/project/my-time-machine

Fügen Sie nun das Remote hinzu:

git remote add origin https://github.com/labex-io/example-repo.git

Dieser Befehl fügt ein neues Remote mit dem Namen origin hinzu, das auf die angegebene URL zeigt. origin ist ein üblicher Name für das primäre Remote-Repository.

Nachdem wir nun ein Remote konfiguriert haben, können wir git branch -r verwenden, um die Remote-Branches aufzulisten. Bevor git branch -r Ihnen jedoch die Remote-Branches anzeigen kann, muss Ihr lokales Repository über diese Informationen verfügen. Diese Informationen werden aktualisiert, wenn Sie von dem Remote abrufen. Holen wir uns die neuesten Informationen vom origin-Remote:

git fetch origin

Sie sollten eine Ausgabe sehen, die darauf hinweist, dass Git Objekte vom Remote abruft.

Lassen Sie uns nun die Remote-Branches mit git branch -r auflisten:

git branch -r

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

  origin/HEAD -> origin/main
  origin/main

Diese Ausgabe zeigt die Remote-Tracking-Branches an. origin/main repräsentiert die main-Branch im origin-Remote. Der Eintrag origin/HEAD gibt an, auf welche Branch HEAD im Remote zeigt, was in der Regel die Standard-Branch ist.

Die Verwendung von git branch -r ist eine schnelle Methode, um zu sehen, welche Branches in Ihren konfigurierten Remotes existieren, ohne jedes Mal eine Verbindung zum Remote herstellen zu müssen, da die Informationen nach einem fetch oder pull lokal gespeichert werden.

Überprüfen einer bestimmten Remote-Branch

Im vorherigen Schritt haben wir alle Remote-Tracking-Branches (Fremd-Verfolgungs-Zweige) mit git branch -r aufgelistet. Manchmal möchten Sie möglicherweise speziell prüfen, ob eine bestimmte Branch in einem Remote-Repository (Fremd-Repository) existiert. Dies können Sie tun, indem Sie git ls-remote mit grep kombinieren oder indem Sie die Ausgabe von git branch -r untersuchen.

Lassen Sie uns erneut git ls-remote verwenden, aber diesmal filtern wir die Ausgabe, um zu sehen, ob die main-Branch im origin-Remote existiert.

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

cd ~/project/my-time-machine

Führen Sie nun den folgenden Befehl aus:

git ls-remote origin main

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 refs/heads/main

Dieser Befehl fragt das origin-Remote speziell nach Informationen über die main-Referenz (die der main-Branch entspricht). Wenn die Branch existiert, wird der Commit-Hash, auf den sie zeigt, und der vollständige Referenzname (refs/heads/main) angezeigt. Wenn die Branch nicht existierte, würde es keine Ausgabe geben.

Alternativ könnten Sie ein ähnliches Ergebnis erzielen, indem Sie die Ausgabe von git branch -r prüfen. Da wir im vorherigen Schritt bereits git fetch origin ausgeführt haben, verfügt unser lokales Repository über Informationen über die Remote-Branches.

Sie können git branch -r verwenden und seine Ausgabe an grep weiterleiten, um nach einer bestimmten Branch zu suchen. Beispielsweise, um nach origin/main zu suchen:

git branch -r | grep origin/main

Wenn die origin/main Remote-Tracking-Branch existiert, wird dieser Befehl die folgende Ausgabe liefern:

  origin/main

Wenn sie nicht existierte, würde grep nichts finden, und es würde keine Ausgabe geben.

Sowohl git ls-remote <remote> <branch> als auch git branch -r | grep <remote>/<branch> sind nützliche Methoden, um die Existenz einer bestimmten Branch in einem Remote-Repository zu überprüfen. git ls-remote fragt das Remote direkt ab, während git branch -r die lokal zwischengespeicherten Informationen aus dem letzten Abruf verwendet.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob eine Git-Branch (Git-Zweig) in einem Remote-Repository (Fremd-Repository) existiert. Wir haben zwei Hauptmethoden dafür untersucht.

Zunächst haben wir den git ls-remote-Befehl verwendet, der es uns ermöglicht, Referenzen (einschließlich Branches) in einem Remote-Repository zu untersuchen, indem wir dessen URL angeben, ohne es klonen zu müssen. Dies liefert eine detaillierte Liste der verfügbaren Referenzen und ihrer Commit-Hashes (Versionskennungen). Zweitens haben wir gelernt, wie man den git branch -r-Befehl verwendet, um Remote-Branches für Remotes aufzulisten, die bereits in unserem lokalen Repository konfiguriert sind. Schließlich haben wir geübt, die Existenz einer bestimmten Remote-Branch mit diesen Methoden zu überprüfen.