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?
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.
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.
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
.
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