– l –local
Wenn sich das zu klonende Repository auf einem lokalen Computer befindet, umgeht dieses Flag den normalen“ Git-bewussten “ Transportmechanismus und klont das Repository, indem es eine Kopie von allem und allem unter Objekten und Refs-Verzeichnissen erstellt.Die dateien unter .git/objects/
verzeichnis sind hardlinkedto platz zu sparen, wenn möglich.
Wenn das Repository als lokaler Pfad angegeben ist (z. B. /path/to/repo
), ist dies die Standardeinstellung,und –local ist im Wesentlichen ein No-op., Wenn therepository als URL angegeben wird, dann wird dieses flag ignoriert (und wenever verwenden lokale Optimierungen). Die Angabe von --no-local
wird standardmäßig beibehalten, wenn /path/to/repo
angegeben wird, wobei stattdessen der regularGit-Transport verwendet wird.
–no-hardlinks
Erzwingen Sie den Klonvorgang aus einem Repository in einem localfilesystem, um die Dateien unter dem Verzeichnis .git/objects
zu kopieren, anstatt Hardlinks zu verwenden. Dies kann wünschenswert sein, wenn Sie versuchen, ein Backup Ihres Repositorys zu erstellen.,
– s –shared
Wenn sich das zu klonende Repository auf dem lokalen Computer befindet,richten Sie anstelle von Hardlinks automatisch.git/objects/info/alternates
ein, um die Objekte freizugebenmit dem Quell-Repository. Der resultierende repositorystarts ohne eigenes Objekt.
HINWEIS: Dies ist eine möglicherweise gefährliche Operation; Verwenden Sie es nicht, es sei denn, Sie verstehen, was es tut. Wenn Sie yourrepository mit dieser Option klonen und dann Zweige löschen (oder einen anderen Git-Befehl verwenden, der vorhandene Commits nicht referenziert), werden einige Objekte möglicherweise nicht referenziert (oder baumeln).,Diese Objekte können durch normale Git-Operationen (wie git commit
)entfernt werden, die automatisch git maintenance run --auto
aufrufen. (Seegit-Wartung.) Wenn diese Objekte entfernt werden und vom geklonten Repository referenziert wurden, wird das geklonte Repository beschädigt.
Beachten Sie, dass das Ausführen von git repack
ohne die Option --local
in einem repositorycloned mit --shared
Objekte aus dem Quell-Repository in ein Paket kopienin dem geklonten Repository wird die Speicherplatzersparnis von clone --shared
entfernt.,Es ist jedoch sicher, git gc
, das die --local
Option bydefault.
Wenn Sie die Abhängigkeit eines mit --shared
geklonten Repositorys von Ihrem Quell-Repository aufheben möchten, können Sie einfach git repack -a
ausführen, um Alloprojekte aus dem Quell-Repository in ein Paket im geklonten Repository zu kopieren.,
–reference <repository>
Wenn sich das Referenz-Repository auf dem lokalen Computer befindet,richten Sie automatisch .git/objects/info/alternates
toobtain-Objekte aus dem Referenz-Repository ein. Wenn Sie ein bereits vorhandenes Repository als Alternative verwenden, müssen weniger Objekte aus dem Repository kopiert und geklont werden, was die Netzwerk-und lokalen Speicherkosten senkt.Bei Verwendung der --reference-if-able
wird ein nicht vorhandenes Verzeichnis mit einer Warnung übersprungen, anstatt den Klon abzubrechen.,
HINWEIS: siehe HINWEIS für die--shared
option, und auch die--dissociate
option.
–dissociate
Leihen Sie die Objekte aus Referenz-Repositorys, die mit den --reference
– Optionen angegeben sind, nur aus, um den Networktransfer zu reduzieren, und beenden Sie die Ausleihe von ihnen, nachdem ein Klon erstellt wurdedurch Erstellen notwendiger lokaler Kopien geliehener Objekte., Thisoption kann auch verwendet werden, wenn das Klonen lokal von arepository, die bereits entliehenen Objekte aus anotherrepository—das neue repository ausleihen von Objekten aus gleichem repository, und diese option kann verwendet werden, zu stoppen theborrowing.
,- q, –quiet
leise zu Betreiben. Der Fortschritt wird dem Standarderror-Stream nicht gemeldet.
-v –verbose
Führen Sie wortreich. Hat keinen Einfluss auf die Meldung des Fortschrittsstatus des Standardfehlerstroms.,
–progress
Der Status des Fortschritts wird standardmäßig im Standardfehlerstream gemeldet, wenn er an ein Terminal angehängt wird, es sei denn, --quiet
ist angegeben. Dieses Flag erzwingt den Status Fortschritt, auch wenn der Standardfehlerstrom nicht an ein Terminal gerichtet ist.
–server-option=<option>
Übertragen Sie die angegebene Zeichenfolge bei der Kommunikation mitprotocol Version 2 an den Server. Die angegebene Zeichenfolge darf kein NUL oder LFcharacter enthalten. Der Umgang des Servers mit Serveroptionen, einschließlichunbekannte, ist serverspezifisch.,Wenn mehrere --server-option=<option>
angegeben sind, werden sie alle in der in der Befehlszeile aufgeführten Reihenfolge auf die andere Seite verschoben.
– n –no-checkout
Nach Abschluss des Klons wird kein Checkout von HEAD durchgeführt.
–bare
Erstellen Sie ein bare Git Repository. Das heißt, anstatt <directory>
zu erstellen und die Verwaltungsdateien in <directory>/.git
zu platzieren, machen Sie die <directory>
selbst zum $GIT_DIR
. Dies impliziert offensichtlich die --no-checkout
, da der Arbeitsbaum nirgends überprüft werden kann.,Auch die Verzweigungsköpfe auf der Fernbedienung werden direkt kopiertzu entsprechenden lokalen Verzweigungsköpfen, ohne sie refs/remotes/origin/
zuzuordnen. Wenn diese Option verwendet wird, werden weder Remote-Tracking-Zweige noch die relatedconfiguration Variablen erstellt.
–sparse
Initialisieren Sie die Sparse-Checkout-Datei, sodass das Arbeitsverzeichnis nur mit den Dateien im rootof des Repositorys beginnt. Die Sparse-Checkout-Datei kann modifiziert werden, um das Arbeitsverzeichnis nach Bedarf zu erweitern.,
–filter=<filter-spec>
Verwenden Sie die Funktion partial clone und fordern Sie an, dass der Server sendet eine Teilmenge erreichbarer Objekte gemäß einem bestimmten Objektfilter.Bei Verwendung von --filter
wird der mitgelieferte <filter-spec>
für den Teilklonfilter verwendet. Zum Beispiel wird --filter=blob:none
alle Blobs (Dateiinhalt) herausfiltern, bis sie von Git benötigt werden. Außerdem filtert--filter=blob:limit=<size>
alle Blobs mit einer Größe von mindestens <size>
., Weitere Informationen zu Filterspezifikationen finden Sie unter--filter
Option in git-rev-list.
–mirror
Richten Sie einen Spiegel des Quell-Repositorys ein. Dies impliziert, --bare
.Im Vergleich zu --bare
ordnet --mirror
nicht nur lokale Zweige der Quelle lokalen Zweigen des Ziels zu, sondern ordnet alle Refs zu (einschließlichremote-Tracking-Zweige, Notizen usw.) und richtet eine refspec-Konfiguration ein, zdass alle diese Refs durch eine git remote update
in thetarget repository überschrieben werden.,
-o <name> –origin <name>
Instead of using the remote name origin
to keep track of the upstreamrepository, use <name>
. Overrides clone.defaultRemoteName
from theconfig.,
– b <name> –branch <name>
Anstatt den neu erstellten KOPF auf den Zweig zu zeigen, auf den der KOPF des geklonten Repositorys zeigt, zeigen Sie auf <name>
branchinstead. In einem nicht nackten Repository ist dies der Zweig, der ausgecheckt wird.--branch
kann auch Tags nehmen und löst den KOPF an diesem commitin dem resultierenden Repository.,
– u <upload-pack> –upload-pack <upload-pack>
Wenn angegeben, und das Repository zu klonen von ssh aufgerufen wird, gibt dies einen nicht standardmäßigen Pfad für die Befehlszeile am anderen Ende.
–template=<template_directory>
Geben Sie das Verzeichnis an, aus dem Vorlagen verwendet werden sollen;(Siehe Abschnitt“ TEMPLATE DIRECTORY “ von git-init.,)
-c <key>=<value> –config <key=<value>
Legen Sie eine Konfigurationsvariable im neu erstellten Repository fest;Dies wird unmittelbar nach der Initialisierung des Repositorys wirksam, jedoch bevor der Remote-Verlauf abgerufen oder Dateien ausgecheckt werden. Der Schlüssel hat das gleiche Format wie erwartet vongit-config (z. B. core.eol=true
)., Wenn Multiplevalues für denselben Schlüssel angegeben werden, wird jeder Wert in die Konfigurationsdatei geschrieben. Dies macht es beispielsweise sicher, zusätzliche Fetch-Refspecs zur Origin-Remote hinzuzufügen.
Aufgrund der Einschränkungen der aktuellen Implementierung werden einige Konfigurationsvariablen erst nach dem ersten Abrufen und Auschecken wirksam.Es ist bekannt, dass Konfigurationsvariablen nicht wirksam werden:remote.<name>.mirror
und remote.<name>.tagOpt
. Verwenden Sie stattdessen die entsprechenden Optionen --mirror
und --no-tags
.,
–depth <depth>
Erstellen Sie einen flachen Klon mit einem Verlauf, der auf die bestimmte Anzahl von Commits abgeschnitten ist. Impliziert --single-branch
es sei denn,--no-single-branch
wird angegeben, um die Historien in der Nähe der Fingerspitzen aller Zweige abzurufen. Wenn Sie Submodule flach klonen möchten, übergeben Sie auch --shallow-submodules
.
–flach-da=<Datum>
Erstellen Sie einen flachen Klon mit einer Geschichte nach der angegebenen Zeit.,
–shallow-exclude=<revision>
Erstellen Sie einen Shallow-clone mit einem Verlauf, der commitsreachable von einem angegebenen Remote-Zweig oder-Tag ausschließt. Diese Optionkann mehrmals angegeben werden.
–single-branch
Klonen Sie nur den Verlauf, der zur Spitze eines einzelnen Zweigs führt, entweder angegeben durch die Option --branch
oder die Option HEAD
von primarybranch remote zeigt auf.Weitere Abrufe in das resultierende Repository aktualisieren nur theremote-Tracking-Zweig für den Zweig Diese Option wurde für das initiale Klonen verwendet., Wenn der KOPF an der Fernbedienung nicht auf einen Zweig zeigte, als --single-branch
Klon gemacht wurde, wird kein Remote-trackingbranch erstellt.
–no-tags
Kann in Verbindung mit --single-branch
zum Klonen und Verwalten eines Zweigs ohne andere Referenzen als einen einzelnen geklonten Zweig verwendet werden. Dies ist beispielsweise nützlich, um minimale Klone des Defaultbranch eines Repositorys für die Suchindizierung beizubehalten.
–recurse-submodule
Nachdem der Klon erstellt wurde, initialisieren und klonen Sie Submodule auf der Grundlage des bereitgestellten pathspec., Wenn kein pathspec vorhanden ist, werden alle Submodule initialisiert und geklont.Diese Option kann für Pfadarten, die aus mehreren Einträgen bestehen, mehrfach angegeben werden. Der resultierende Klon hat submodule.active
auf den bereitgestellten pathspec oder“.“(dh alle Submodule), wenn nopathspec bereitgestellt wird.
Submodule werden mit ihren Standardeinstellungen initialisiert und geklont. Dies ist äquivalent zum Ausführen vongit submodule update --init --recursive <pathspec>
unmittelbar nach Abschluss des Klons. Diese Option wird ignoriert, wenn das geklonte Repository keinen worktree / Checkout (dh, wenn alle von --no-checkout
/-n
, --bare
oder --mirror
angegeben ist)
–flach-Submodule
Alle teilmodule, die geklont werden flach mit einer Tiefe von 1.
–remote-submodule
Alle geklonten Submodule verwenden den Status des Remote-Tracking-Zweigs des Submoduls, um das Submodul zu aktualisieren, anstatt den aufgezeichneten SHA-1 des Submoduls. Entspricht der Übergabe von --remote
angit submodule update
.,
–separate-git-dir=<git dir>
Anstatt das geklonte Repository dort zu platzieren, wo es sein soll,platzieren Sie das geklonte Repository im angegebenen Verzeichnis und stellen Sie dann eine dateisystemunabhängige Git-symbolische Verknüpfung her.Das Ergebnis ist, dass Git Repository von workingtree getrennt werden kann.
– j <n> –j <n>
Die Anzahl der gleichzeitig abgerufenen Submodule.Standardmäßig ist die Option submodule.fetchJobs
.,
<repository>
Das (möglicherweise entfernte) Repository zum Klonen. Weitere Informationen zu specifyingrepositories finden Sie im Abschnitt URLS hinzufügen unten.
<Verzeichnis>
Leave a Reply