wake-up-neo.com

Was ist der Unterschied zwischen Pull und Clone in Git?

Was ist der Unterschied zwischen tun (nach mkdir repo und cd repo):

git init
git remote add Origin git://github.com/cmcculloh/repo.git
git fetch --all
git pull Origin master

und

git clone git://github.com/cmcculloh/repo.git

Ich meine, offensichtlich ist einer kürzer, aber ansonsten machen sie im Grunde das Gleiche?

206
cmcculloh

Sie sind im Grunde die gleichen, außer dass Clone zusätzliche Remote-Tracking-Zweige einrichten wird, nicht nur Master. Check out the man page :

Klont ein Repository in ein neu erstelltes Verzeichnis, erstellt Remote-Tracking-Verzweigungen für jede Verzweigung im geklonten Repository (sichtbar mit git branch -r) und erstellt und checkt eine erste Verzweigung aus, die aus der derzeit aktiven Verzweigung des geklonten Repositorys gespalten wird.

107
meagar

Mit git clone Erhalten Sie eine lokale Kopie eines vorhandenen Repositorys, an dem Sie arbeiten können. Es wird normalerweise nur einmal für ein bestimmtes Repository verwendet, es sei denn, Sie möchten mehrere Arbeitskopien davon haben. (Oder Sie möchten eine saubere Kopie erhalten, nachdem Sie Ihre lokale durcheinander gebracht haben ...)

Mit git pull (Oder git fetch + git merge) Können Sie Update diese lokale Kopie mit neuen Commits aus dem Remote-Repository erstellen. Wenn Sie mit anderen zusammenarbeiten, wird dieser Befehl häufig ausgeführt.

Wie Ihr erstes Beispiel zeigt, ist es möglich, git clone Mit einer Reihe anderer git-Befehle zu emulieren, aber es ist nicht wirklich so, dass git pull "Im Grunde dasselbe" wie git clone (Oder umgekehrt).

220
ebneter

In der Sprache der Laien können wir sagen:

  • Clone: Holen Sie sich eine Arbeitskopie des Remote-Repository.
  • Pull: Ich arbeite daran, bitte informieren Sie mich über die neuen Änderungen, die möglicherweise von anderen aktualisiert werden.
105
Jyoti Prakash

git clone bedeutet, dass Sie eine Kopie des Repositorys in Ihrem System erstellen.

git fork bedeutet, dass Sie das Repository in Ihr Github-Konto kopieren.

git pull bedeutet, dass Sie das zuletzt geänderte Repository abrufen.

git Push bedeutet, dass Sie das Repository zurückgeben, nachdem Sie es geändert haben.

In der Laienbezeichnung:

git clone wird heruntergeladen und git pull erfrischt.

28
user7909000

clone: Kopieren des Remote-Server-Repositorys auf Ihren lokalen Computer.

pull: Neue Änderungen erhalten, die andere zu Ihrem lokalen Computer hinzugefügt haben.

Das ist der Unterschied.

Clone wird im Allgemeinen verwendet, um eine Remote-Repo-Kopie zu erhalten.

Pull wird verwendet, um anderen Teammitgliedern hinzugefügten Code anzuzeigen, wenn Sie in Teams arbeiten.

8
Suman Astani

Git-Klon wird verwendet, um genau das herunterzuladen, was gerade auf dem Remote-Server-Repository läuft, und um es in dem Ordner Ihres Computers zu speichern, in dem sich das Projekt befindet. Meist wird es nur verwendet, wenn wir das Projekt zum ersten Mal hochladen. Danach ist Pull die bessere Option.

Git Pull ist im Grunde eine (Klon- (Download-) + Zusammenführungs-) Operation und wird meistens verwendet, wenn Sie als Teamwork arbeiten. Mit anderen Worten, wenn Sie die letzten Änderungen in diesem Projekt möchten, können Sie ziehen.

3
Raman_1059

Hmm, was fehlt, um den Remote-Zweig "4.2" zu sehen, wenn ich ziehe, wie ich es tue, wenn ich klone? Etwas ist eindeutig nicht identisch.

tmp$  mkdir some_repo

tmp$  cd some_repo

some_repo$  git init
Initialized empty Git repository in /tmp/some_repo/.git/

some_repo$  git pull https://github.ourplace.net/babelfish/some_repo.git
  :
From https://github.ourplace.net/babelfish/some_repo
 * branch            HEAD       -> FETCH_HEAD

some_repo$  git branch
* master

vs

tmp$  rm -rf some_repo

tmp$  git clone https://github.ourplace.net/babelfish/some_repo.git
Cloning into 'some_repo'...
  :
Checking connectivity... done.

tmp$  cd some_repo

some_repo$  git branch
* 4.2
2
Scott

Während der Befehl git fetch Alle Änderungen auf dem Server abruft, die Sie noch nicht haben, ändert er Ihr Arbeitsverzeichnis überhaupt nicht. Es holt einfach die Daten für Sie und lässt Sie sie selbst zusammenführen. Es gibt jedoch einen Befehl namens git pull, Der im Wesentlichen ein git fetch Ist, dem in den meisten Fällen ein git merge Folgt.

Lesen Sie mehr: https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Pulling

1
simopr

git clone URL ---> Komplettes Projekt oder Repository wird als separates Verzeichnis heruntergeladen. und nicht nur die Änderungen git pull URL ---> fetch + merge -> Es werden nur die vorgenommenen Änderungen und nicht das gesamte Projekt abgerufen

0
Md Abrar