6 git-clone - Klone ein Projektarchiv (repository) in ein neues Verzeichnis.
12 'git clone' [--template=<template_directory>]
13 [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare]
14 [-o <name>] [-u <upload-pack>] [--reference <repository>]
15 [--depth <depth>] [--] <repository> [<directory>]
20 Klont ein Projektarchiv (repository) in ein neu erzeugtes Verzeichnis,
21 erzeugt lokale 'remote-tracking' Zweige zum Nachverfolgen aller
22 fernen Projektzweige (remote branches - sichtbar durch 'git branch -r').
23 Zusätzlich wird der gerade aktive Entwicklungszweig (branch) des
24 fernen Projektarchivs lokal angelegt und dessen Inhalte geholt.
26 Nach dem Klonen werden durch ein einfaches 'git fetch' (ohne weitere
27 Argumente) lokal alle 'remote-tracking' Entwicklungszweige aktualisiert,
28 ein Aufruf von 'git pull' wird zusätzlich die Änderungen des
29 fernen Entwicklungszweigs 'master' (falls es einen gibt) in den
30 gleichnamigen lokalen Entwicklungszweig zusammenführen.
32 Diese Standardkonfiguration wird durch Anlegen einer Referenz
33 auf den 'HEAD' des fernen Entwicklungszweigs unter
34 `$GIT_DIR/refs/remotes/origin` und der Einrichtung der
35 Konfigurationsvariablen `remote.origin.url` und `remote.origin.fetch`
43 Ist das zu klonende Projektarchiv lokal auf der Maschine,
44 kann durch dieses Flag der normale git Transport Mechanismus
45 umgangen werden und es wird ein einfacher Kopiervorgang
46 von 'HEAD' und allen unter den 'objects' und 'refs'
47 Verzeichnissen gelegenen Daten durchgeführt.
48 Die Dateien unter '.git/objects/' werden zum Platzsparen
49 mittels hard link referenziert anstatt sie physikalisch
50 zu kopieren. Dieses Verhalten ist nun der Standard wenn
51 das Quellarchiv mit '/pfad/zum/archiv' beginnt, und muß
52 somit meist nicht explizit angegeben werden. Soll der git
53 Transportmechanismus vermieden, aber echtes kopieren
54 (statt hard linking) erzwungen werden (z.B. wenn
55 man eine Sicherungskopie des Projektarchivs anlegen will)
56 kann die Option '--no-hardlinks' verwendet werden.
59 Erzwinge ein physikalisches Kopieren aller Dateien unter
60 dem '.git/objects/' Verzeichnis.
64 Befindet sich das zu klonende Projektarchiv (repository)
65 lokal auf der Maschine, dann werden automatisch alle Objkte
66 mittels '.git/objects/info/alternates' gemeinsam verwendet.
67 Das erzeugte Projektarchiv enthält initial keine eigenen
70 *NOTE*: Dies kann möglicherweise gefährlich sein! Verwende diese
71 Option nicht wenn Du Dir nicht wirklich sicher bist. Wird ein
72 Projektarchiv mit dieser Option geklont und man löscht z.B. später
73 einen Entwicklungszweig (branch), oder führt sonst eine git
74 Operation im Quellarchiv durch die bestehende Eintragungen
75 dereferenziert, kann dies das geklonte Projektarchiv zerstören.
76 Diese "gefährlichen" Operationen können auch implizit, z.B. von
77 'git commit' (ruft intern automatisch 'git gc --auto' auf)
78 ausgeführt werden. (Siehe linkgit:git-gc[1].)
82 --reference <repository>::
83 Befindet sich das zu klonende Projektarchiv (repository)
84 lokal auf der Maschine, dann setze
85 .git/objects/info/alternates so auf, daß Objekte
86 automatisch vom original Projektarchiv genommen werden.
87 Wird ein bereits bestehendes Projektarchiv als 'alternativ'
88 angegeben, müssen weniger Objekte von diesem kopiert werden,
89 wodurch weniger Plattenplatz und Bandbreite auf dem Netzwerk
92 *NOTE*: siehe NOTE zur --shared Option.
96 'stille' Ausführung. Dieses Flag wird auch an den 'rsync'
101 Unterdrücke das Abrufen (checkout) von HEAD nachdem das Klonen
105 Erzeuge ein 'reines' GIT repository, d.h. anstatt ein
106 '<verzeichnis>' zu erzeugen und die administrativen
107 Dateien unter '<verzeichnis>/.git' abzulegen werden diese
108 direkt unter '<verzeichnis>' als '$GIT_DIR' abgelegt.
109 Dies impliziert die '-n' Option, da ein Abrufen (checkout)
110 des Arbeitsbereichs offensichtlich nicht möglich ist.
111 Zusätzlcih werden die Entwicklungszweige des fernen
112 Projektarchivs direkt zu den entsprechenden lokalen
113 Entwicklungszweigen kopiert, ohne Zuordnungen über
114 'refs/remotes/origin/' anzulegen. Wird diese Option
115 angegeben, so werden weder remote-tracking Entwicklungszweige
116 noch die dazugehörigen Konfigurationsvariablen angelegt.
117 Also the branch heads at the remote are copied directly
118 to corresponding local branch heads, without mapping
119 them to `refs/remotes/origin/`. When this option is
120 used, neither remote-tracking branches nor the related
121 configuration variables are created.
125 Verwende den Namen <name> anstatt 'origin' zum Verfolgen der
126 Änderungen des fernen Projektarchivs.
128 --upload-pack <upload-pack>::
130 Wird diese Option angegeben und auf das zu klonende
131 Projektarchiv mittels ssh zugegriffen, dann gibt <upload-pack>
132 das auf der entfernten Seite auszuführende Kommando an.
134 --template=<template_directory>::
135 Gibt das Verzeichnis für die zu verwendenden Vorlagen (templates)
136 an. Wird die Option nicht angegeben, werden standardmäßig
137 die Vorlagen von `/usr/share/git-core/templates` verwendet.
140 Erzeugt einen 'oberflächlichen' Klone des des Projektarchivs,
141 welcher auf die angegebene Anzahl von Versionen gekürzt ist.
142 Ein derart erzeugtes Projektarchiv hat mehrere Einschränkungen
143 (man kann es weder klonen oder davon 'fetchen', auch kann man
144 'git pull' weder vom Projektarchiv weg, noch auf es hin ausführen),
145 ist aber ausreichend wenn man lediglich die altuellsten Änderungen
146 eines Projekts mit einer langen Historie benötigt und Verbesserungen
147 nur mit 'patches' eingesendet werden.
150 Das (möglicherweise ferne) Projektarchiv das geklont werden soll.
151 Siehe die <<URLS,URLS>> Sektion für weitere Information wie
152 Projektarchive angegeben werden können.
155 Der Name eines neuen Verzeichnisses in das gekloned wird.
156 Falls kein Verzeichnis explizit angegeben wurde, wird der
157 "menschenfreundliche" Teil des Qellprojektarchivs verwendet.
158 ("repo" für "/path/to/repo.git" und "foo" für "host.xz:foo/.git").
159 Das Klonen in ein bestehendes Verzeichnis ist nicht erlaubt.
167 Klonen eines 'fernen' Projektarchivs::
170 $ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
175 Erzeuge einen lokalen Klon der vom aktuellen Verzeichnis borgt,
176 ohne 'git checkout' durchzuführen::
179 $ git clone -l -s -n . ../copy
185 Klone ein 'fernes' Projektarchiv während Objekte von einem lokalen
186 Projektarchiv gebort werden::
189 $ git clone --reference my2.6 \
190 git://git.kernel.org/pub/scm/.../linux-2.7 \
196 Erzeuge ein 'reines' Projektarchiv um Änderungen publik zu machen::
199 $ git clone --bare -l /home/proj/.git /pub/scm/proj.git
203 Erzeuge auf dem Rechner kernel.org ein Projektarchiv das Objekte
207 $ git clone --bare -l -s /pub/scm/.../torvalds/linux-2.6.git \
208 /pub/scm/.../me/subsys-2.6.git
214 Geschrieben von Linus Torvalds <torvalds@osdl.org>
219 Documentatiert von Junio C Hamano und der git Mailingliste
220 <git@vger.kernel.org>.
225 Part of the linkgit:git[1] suite