Was ist der Unterschied zwischen Klon und mkdir-> cd-> init-> Remote-Add-> Pull?
Frage
Nach einem Repo auf Github einrichten, scheint es zwei Möglichkeiten, um diese Repo in einem lokalen Repo zu ziehen.
Zum einen kann ich ein Verzeichnis erstellen, die eine leere Repo initialisieren, eine Remote hinzufügen und dann ziehen sie von der Fernbedienung.
> mkdir "exampleProject"
> cd "exampleProject"
> git init
> git remote add origin git@github.com:exampleUser/exampleProject.git
> git pull origin master
Zum anderen konnte ich die Fernbedienung klonen.
> git clone git@github.com:exampleUser/exampleProject.git
Ist das Klonen nur eine Verknüpfung für die 5-Schritt-Version oben oder ist es etwas anderes tun, als auch? Werde ich in Schwierigkeiten geraten, wenn ich eine Methode, über die andere verwenden?
Lösung
Viele Befehle, ob git Befehle oder gemeinsame Programme, Dinge tun, in einer Zeile könnte man sonst in zehn tun. Es ist immer gute Arbeit zu retten!
Das heißt, Ihre Schritte sind in der Nähe, aber nicht ganz das gleiche wie, was git clone
tut. Ich kann mich ein paar Unterschiede, die alle mit Niederlassungen zu tun:
-
Wenn aus irgendeinem Grund, HEAD der Fernbedienung des ist nicht Master, der Klon wird das Richtige tun - geben Sie einen Zweig die gleichen wie die Fernbedienung genannt, statt Master. Das ist selten, aber ein gutes Detail bewusst zu sein.
-
Ihr
git pull
werden alle Remote-Filialen nicht erstellen. Wenn die entfernte mehrere Zweige hat, erstellt der Klon entfernte Zweigeremotes/origin/foo
,remotes/origin/bar
, ... in Ihrem Repository. Eingit fetch origin
würde kümmern, dass in der aufgeführten Schritte. -
Sie haben auch nicht richten Sie Ihren Master-Zweig Herkunfts zu verfolgen, die der Klon tut. Sie können dies auf Ihre aufgeführten Schritte als
git config branch.master.remote origin; git config branch.master.merge refs/heads/master
hinzufügen. Das ist sehr wichtig -. Mit Schritten, wenn Sie die Master ausgecheckt und Sie Git-Pull-Typen, wird es nicht wissen, was zu tun
Es ist möglich, ich habe verpasst das eine oder andere. Wie bei Schwierigkeiten des einen oder anderen, auch Sie alle die Unterschiede zwischen einem Standard-Klon ausbügeln angenommen und einem „Handbuch Klon“, mein Rat wäre, nicht neu zu erfinden git clone
sein:
-
Es ist kurz. Warum mehr Arbeit?
-
Es ist handlich Optionen bekommt sein Verhalten zu ändern. Dinge wie
--shared
wäre wirklich schwierig sein, Ihre aufgeführten Befehle hinzuzufügen. -
Es ist garantiert das Richtige jetzt und in Zukunft zu tun. Was passiert, wenn Sie ein Detail übersehen, wie die oben? Was passiert, wenn git hat einen globalen Konfigurationsparameter, dass die betroffenen Klone? Sie müssten Ihre Befehle ändern Sie es zu berücksichtigen, aber git clone würde bereits wissen.