wake-up-neo.com

Unterschied zwischen git remote add und git clone

Was macht der Befehl clone? Gibt es eine Entsprechung in svn?

Was ist der Unterschied zwischen

git remote add test git://github.com/user/test.git

Und

git clone git://github.com/user/test.git

Ist der Name des erstellten Repos wichtig?

61
nacho4d

git remote add erstellt nur einen Eintrag in Ihrer Git-Konfiguration, der einen Namen für eine bestimmte URL angibt. Sie müssen ein vorhandenes Git-Repo haben, um dies zu verwenden.

git clone erstellt ein neues Git-Repository, indem ein vorhandenes an der von Ihnen angegebenen URI kopiert wird.

59
Jason LeBrun

Diese sind funktional ähnlich (probieren Sie es aus!):

 # git clone REMOTEURL foo 

und:

 # mkdir foo 
 # cd foo 
 # git init 
 # git remote add Origin REMOTEURL 
 # git pull Origin master 

Jetzt gibt es kleine Unterschiede, aber im Grunde werden Sie sie wahrscheinlich nicht bemerken. Vergleichen Sie als Übung für den Leser die .git/config-Dateien aus jedem Verzeichnis.

46
Wes Hardaker

Der Befehl clone erstellt eine lokale Kopie des von Ihnen angegebenen Repos. remote add fügt ein Remote-Repo hinzu, zu dem Sie entweder drücken oder von dem Sie ziehen können.

Das SVN-Äquivalent von clone ist checkout.

9
Rafe Kettler

git clone:

Lädt die Dateien physisch auf Ihren Computer herunter. Es wird Speicherplatz von Ihrem Computer beanspruchen. Wenn das Repo 200 MB groß ist, lädt es das alles herunter und legt es in dem Verzeichnis ab, das Sie geklont haben.

git remote add:

Nimmt keinen Platz ein! Es ist eher wie ein Zeiger! Es erhöht nicht Ihren Festplattenverbrauch. Es wird nur ein Schnappschuss von den verfügbaren Filialen und ihrer GIT-Commit-Geschichte angezeigt, glaube ich. Es enthält nicht die eigentlichen Dateien/Ordner Ihres Projekts.

Wenn Sie tun:

git remote add TechLeadRepo  git://github.com/user/test.git

dann haben Sie Ihrem Computer nichts hinzugefügt. Nachdem Sie es in Ihren Remote-Filialen hinzugefügt haben, können Sie eine Liste aller Filialen auf dieser Remote-Site abrufen, indem Sie folgende Schritte ausführen:

git fetch --all

Und wenn Sie die feature22-Filiale Ihres Kollegen in Ihre lokale Filiale integrieren möchten, tun Sie dies einfach

git checkout -b myLocalFeature22 TechLeadRepo/feature22

Ich glaube, nachdem Sie einen Checkout durchgeführt haben, werden die neuesten Änderungen übernommen und Speicherplatz auf Ihrem Computer belegt. Offensichtlich wird nur Platz für all die neuen Commits benötigt, die Sie nicht haben.

Wenn Sie sein Repo geklont hätten, müssten Sie in das Verzeichnis dieses lokalen Repositorys gehen und zu Ihrer gewünschten Filiale auschecken

2
Honey