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.

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>
git clone ssh://[email protected]/path/to/team-project.git
cd team-project
# You must work on this projectgit 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>
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>
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:
git clone
--branch<repo>Das Argument
--branchgibt 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 Branchesnew_featureaus dem Remote-Repository:
git clone --branch <repo>
git clone --branch new_feature git://remoterepository.gitgit clone
--bare<repo>Mit dem an
git cloneübergebenen Argument--bareerhalten 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.git clone
--mirror<repo>Das Verhalten des Arguments
--barewird von--mirrorübernommen, was bedeutet, dass beim Übergeben von--mirrorauch--baregesetzt wird. Das Argument--mirrorklont 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.
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>
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.
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>
git clone ssh://user@server/project.gitSSH 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.
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>
git clone https://example.com/gitproject.gitEiner 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.
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>
git clone /opt/git/project.gitPractice
What is the primary purpose of the 'git clone' command in Git?