Was ist der Unterschied zwischen git clone
y git checkout
?
Antworten
Zu viele Anzeigen?Die Manpage für checkout: http://git-scm.com/docs/git-checkout
Die Manpage für clone: http://git-scm.com/docs/git-clone
Zusammenfassend lässt sich sagen, dass clone dazu dient, Repositories zu holen, die man nicht hat, und checkout dazu, zwischen Zweigen eines Repositories zu wechseln, das man bereits hat.
Hinweis: Für diejenigen, die einen SVN/CVS-Hintergrund haben und neu in Git sind, ist die Entsprechung von git clone
in SVN/CVS ist checkout
. Die gleiche Formulierung verschiedener Begriffe ist oft verwirrend.
Git-Klon ist es, Ihre Repositories von einem entfernten Git-Server zu holen.
Git-Checkout ist das Auschecken des gewünschten Status Ihres Repositorys (wie Zweige oder bestimmte Dateien).
Sie befinden sich z.B. gerade im Master-Zweig und möchten in den Entwicklungszweig wechseln.
git checkout develop_branch
Sie möchten z. B. zu einem bestimmten Status einer bestimmten Datei auschecken
git checkout commit_point_A -- <filename>
Hier ist ein gute Referenz für Sie, um Git zu lernen, lässt Sie viel leichter verstehen.
Eine Sache, die auffällt, ist das Fehlen von "Copyout" in Git. Das liegt daran, dass Sie bereits eine vollständig Kopie in Ihrem lokalen Repository - Ihr lokales Repository ist ein clone
des von Ihnen gewählten Upstream-Repositoriums. Sie haben also effektiv eine persönliche checkout
de alles , ohne diese Dateien im Referenz-Repository zu sperren.
Git stellt die SHA1-Hash-Werte als Mechanismus zur Verfügung, um zu verifizieren, dass die Kopie, die Sie von einer Datei / einem Verzeichnisbaum / einem Commit / einem Repo haben, genau dieselbe ist, die von demjenigen verwendet wird, der in der Lage ist, Dinge als "Master" innerhalb der Hierarchie des Vertrauens zu deklarieren. Dies vermeidet all die "Sperren", die die meisten SCM-Systeme zum Erliegen bringen (mit den üblichen Problemen von privaten Kopien, großen Zusammenführungen und keiner wirklichen Kontrolle oder Verwaltung des Quellcodes ;-) !
Einfach git checkout haben 2 Anwendungen
- Umschalten zwischen bestehenden lokalen Filialen wie
git checkout <existing_local_branch_name>
- Erstellen Sie einen neuen Zweig aus dem aktuellen Zweig mit dem Flag -b. Angenommen, Sie befinden sich im Master-Zweig, dann
git checkout -b <new_feature_branch_name>
erstellt einen neuen Zweig mit dem Inhalt von master und wechselt zum neu erstellten Zweig
Weitere Optionen finden Sie auf der Website offizielle Seite
checkout
kann für viele Fälle verwendet werden:
1. Fall : Wechsel zwischen Zweigen im lokalen Repository Zum Beispiel : git checkout exists_branch_to_switch
Sie können auch einen neuen Zweig erstellen und in diesem Fall mit -b
git checkout -b new_branch_to_switch
2. Fall Datei von x rev wiederherstellen
git checkout rev file_to_restore
...