Was ist der Unterschied zwischen git clone
und git checkout
?
Was ist der Unterschied zwischen git clone
und git checkout
?
Antworten:
Die Manpage zum Auschecken: http://git-scm.com/docs/git-checkout
Die Manpage für den Klon: http://git-scm.com/docs/git-clone
Zusammenfassend lässt sich sagen, dass der Klon zum Abrufen nicht vorhandener Repositorys und zum Umschalten zwischen Zweigen in einem bereits vorhandenen Repository dient.
Hinweis: Für diejenigen, die einen SVN / CVS-Hintergrund haben und neu bei Git sind, entspricht dies git clone
SVN / CVS checkout
. Der gleiche Wortlaut verschiedener Begriffe ist oft verwirrend.
checkout
kann auch an andere Dinge gewöhnt sein, z. B. das Überschreiben einer Datei in Ihrer Arbeitskopie mit einer Version dieser Datei aus einer anderen Revision.
Git-Klon dient zum Abrufen Ihrer Repositorys vom Remote-Git-Server.
git checkout dient zum Auschecken des gewünschten Status Ihres Repositorys (z. B. Zweige oder bestimmte Dateien).
Sie befinden sich derzeit in der Hauptniederlassung und möchten in die Entwicklungsniederlassung wechseln.
git checkout develop_branch
Sie möchten beispielsweise zu einem bestimmten Status einer bestimmten Datei auschecken
git checkout commit_point_A -- <filename>
Hier ist eine gute Referenz zum Erlernen von Git, mit der Sie viel einfacher verstehen können.
git clone
funktioniert auch mit lokalen Repos.
Eine Sache zu bemerken ist das Fehlen eines "Copyout" innerhalb von Git. Das liegt daran, dass Sie bereits eine vollständige Kopie in Ihrem lokalen Repo haben - Ihr lokales Repo gehört zu clone
Ihrem ausgewählten Upstream-Repo. So haben Sie effektiv eine persönliche checkout
von alles , ohne in der Referenz Repo auf diese Dateien einige ‚Sperre‘ zu setzen.
Git stellt die SHA1-Hashwerte als Mechanismus zur Verfügung, um zu überprüfen, ob die Kopie einer Datei / eines Verzeichnisbaums / eines Commits / eines Repos genau der entspricht, die von jedem verwendet wird, der in der Lage ist, Dinge innerhalb der Vertrauenshierarchie als "Master" zu deklarieren. Dies vermeidet all jene "Sperren", die dazu führen, dass die meisten SCM-Systeme ersticken (mit den üblichen Problemen von privaten Kopien, großen Zusammenführungen und keiner wirklichen Kontrolle oder Verwaltung des Quellcodes ;-)!
Einfach Git Checkout haben 2 Verwendungszwecke
git checkout <existing_local_branch_name>
git checkout -b <new_feature_branch_name>
, erstellen einen neuen Zweig mit dem Inhalt des Masters und wechseln zum neu erstellten ZweigWeitere Optionen finden Sie auf der offiziellen Website
-b
Option ist fantastisch, da ein neuer lokaler Zweig erstellt und gleichzeitig mit einem einzigen Befehl ausgecheckt wird. Liebte es!
checkout
kann für viele Fälle verwendet werden:
1. Fall : Wechsel zwischen Zweigstelle im lokalen Repository Zum Beispiel:
git checkout exists_branch_to_switch
Sie können auch einen neuen Zweig erstellen und in diesem Fall mit ausschalten -b
git checkout -b new_branch_to_switch
2. Fall : Datei von x rev wiederherstellen
git checkout rev file_to_restore
...