Zum Inhalt springen

git clone

Beschreibung

Der Befehl git clone erstellt einen Klon/eine Kopie eines vorhandenen Repositorys in einem neuen Verzeichnis. Er wird auch verwendet, um Remote-Tracking-Branches für jeden Branch im geklonten Repository zu erstellen. Es ist der gebräuchlichste Befehl, der es Benutzern ermöglicht, eine Entwicklungskopie eines vorhandenen zentralen Repositorys zu erhalten.

Gitclone

Die Verwendung von git clone

Zunächst wird der Befehl git clone verwendet, um ein vorhandenes Repository anzusprechen und es in ein neues Verzeichnis zu klonen oder zu kopieren. Eine lokale Kopie, die auf einem Server gespeichert ist und unter example.com erreichbar ist, kann mit dem SSH-Benutzernamen x_person wie folgt abgerufen werden:

git clone <repo>

bash
git clone ssh://[email protected]/path/to/team-project.git
cd team-project
# You must work on this project

git clone initialisiert ein neues Git-Repository im Ordner team-project auf Ihrem lokalen Rechner und füllt es mit dem Inhalt des zentralen Repositorys. Danach können Sie mit cd in das Projekt wechseln und mit der Änderung von Dateien, dem Erstellen von Commits und der Interaktion mit anderen Repositorys beginnen.

In einen bestimmten Ordner klonen

Sie sollten eine Kopie des Repositorys unter <repo> in den Ordner <directory> auf dem lokalen Rechner klonen.

git clone <repo> <directory>

bash
git clone <repo> <directory>

Einen bestimmten Tag klonen

Klonen Sie das Repository unter <repo> und klonen Sie nur den Ref für <tag>.

git clone --branch <tag> <repo>

bash
git clone --branch <tag> <repo>

Unterschied zwischen git init und git clone

git init und git clone werden oft miteinander verwechselt. Wichtig ist hier zu beachten, dass git init ein neues, leeres lokales Repository erstellt, während git clone ein vorhandenes Remote-Repository auf Ihren lokalen Rechner kopiert. git clone erfordert nicht, dass Sie zuerst git init ausführen; es initialisiert das lokale Repository automatisch und richtet Remote-Tracking-Branches ein.

Konfigurationsoptionen von Git Clone

Konfigurationsoptionen sind die Werkzeuge, die Sie benötigen, um Git so funktionieren zu lassen, wie es am besten zu Ihnen oder Ihrem Team passt. Die gebräuchlichsten werden unten vorgestellt:

  1. git clone --branch <repo>

    Das Argument --branch gibt einen Branch an, der geklont werden soll, anstatt des Branches, auf den das Remote-HEAD zeigt, normalerweise der Master-Branch. Außerdem können Sie statt eines Branches auch einen Tag angeben, um denselben Effekt zu erzielen. Mit dem folgenden Beispiel erhalten Sie einen Klon des Branches new_feature aus dem Remote-Repository:

git clone --branch <repo>

bash
git clone --branch new_feature git://remoterepository.git
  1. git clone --bare <repo>

    Mit dem an git clone übergebenen Argument --bare erhalten Sie eine Kopie des Remote-Repositorys ohne Arbeitsverzeichnis. Das Repository wird also mit der Projektgeschichte erstellt, aus der gepusht oder aus der gepullt werden kann, die aber nicht bearbeitet werden kann.

  2. git clone --mirror <repo>

    Das Verhalten des Arguments --bare wird von --mirror übernommen, was bedeutet, dass beim Übergeben von --mirror auch --bare gesetzt wird. Das Argument --mirror klont alle erweiterten Refs des Remote-Repositorys. Außerdem können Sie damit eine Konfiguration für das Tracking von Remote-Branches beibehalten.

Git-URLs

Git hat seine eigene URL-Syntax. Sie wird verwendet, um Git-Befehlen die Standorte entfernter Repositorys zu übergeben. Git-URLs sind wichtig, weil git clone hauptsächlich mit Remote-Repositorys verwendet wird.

Git-URL-Protokolle

Git kann die folgenden Protokolle für die Datenübertragung verwenden: Git, Secure Shell (SSH), HTTPS und Local. Dabei ist zu beachten, dass alle diese Protokolle außer HTTPS erfordern, dass Git auf dem Server installiert und funktionsfähig ist.

  1. Git

    Das Git-Protokoll ist einzigartig für Git. Es ist ein spezieller Daemon, der auf Port 9418 läuft und einen Dienst ähnlich wie SSH bereitstellt, jedoch ohne Authentifizierung.

git clone git:// <repo>

bash
git://host.xz[:port]/path/to/repo.git/

Der Vorteil des Git-Protokolls ist die schnelle Übertragung. Das Git-Protokoll hat jedoch auch einige Nachteile: das Fehlen von Authentifizierung und die Schwierigkeit der Protokollkonfiguration.

  1. SSH

    Secure Shell (SSH) ist ein Netzwerkprotokoll, das hilft, sich sicher von einem Computer auf einen anderen anzumelden. In den meisten Fällen ist der SSH-Zugriff auf Server standardmäßig konfiguriert. Vor dem Verbinden ist es notwendig, Anmeldedaten mit dem Hosting-Server festzulegen.

git clone ssh:// <repo>

bash
git clone ssh://user@server/project.git

SSH ist das einzige Netzwerkprotokoll, mit dem sich Repositorys problemlos lesen und beschreiben lassen. SSH hat viele weitere Vorteile, wie einfache Konfiguration, sicheren Zugriff (alle Datenübertragungen sind verschlüsselt und authentifiziert) und Datenkompaktheit vor der Übertragung. Der Nachteil von SSH ist, dass es keinen anonymen Zugriff auf das Git-Repository unterstützt. Weitere Informationen zu SSH-Schlüsseln finden Sie in unserem Abschnitt SSH key.

  1. HTTPS

    HTTPS steht für HyperText Transfer Protocol Secure. Dieses Protokoll wird hauptsächlich verwendet, um HTML-Daten über das Internet zu übertragen. Git ist so konfiguriert, dass es Informationen mit HTTPS austauscht.

git clone https:// <repo>

bash
git clone https://example.com/gitproject.git

Einer der Vorteile von HTTPS ist die einfache Einrichtung. Es erfordert außerdem nicht viele Ressourcen auf dem Server. Es verschlüsselt die Übertragung der Inhalte. Unternehmens-Firewalls sind so eingerichtet, dass sie Datenverkehr über diesen Port zulassen, wodurch HTTPS zu einem der häufig verwendeten Protokolle wird.

Der Hauptnachteil ist ein etwas höherer Overhead aufgrund der Verschlüsselung, was das Klonen oder Abrufen aus dem Repository im Vergleich zum Git-Protokoll etwas langsamer machen kann.

  1. Lokal

    Lokal ist ein einfaches Protokoll, bei dem sich das entfernte Repository in einem anderen Verzeichnis auf der Festplatte befindet. Es wird verwendet, wenn alle Teammitglieder Zugriff auf ein gemeinsames Dateisystem haben. Ein gemeinsames Dateisystem ermöglicht es Ihnen, ein lokales Repository zu klonen, dorthin zu pushen und daraus zu pullen. Der Pfad zum Repository kann als URL verwendet werden, um ein Repository so in ein bestehendes Projekt zu klonen.

git clone <local_path>

bash
git clone /opt/git/project.git

Practice

What is the primary purpose of the 'git clone' command in Git?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.