Różnica między git remote add a git clone

Do czego służy clone polecenie? Czy jest jakiś odpowiednik w svn?

Jaka jest różnica między

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

I

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

Czy nazwa utworzonego repo ma znaczenie?

Author: code_dredd, 2011-01-31

4 answers

git remote add po prostu tworzy wpis w konfiguracji git, który określa nazwę dla konkretnego adresu URL. Aby tego użyć, musisz mieć istniejący Git repo.

git clone tworzy nowe repozytorium git poprzez skopiowanie istniejącego repozytorium znajdującego się na podanym przez Ciebie URI.

 68
Author: Jason LeBrun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-31 20:13:36

Są one funkcjonalnie podobne (spróbuj!):

 # git clone REMOTEURL foo

I:

 # mkdir foo
 # cd foo
 # git init
 # git remote add origin REMOTEURL
 # git pull origin master
 # cd ..

Teraz są drobne różnice, ale zasadniczo prawdopodobnie ich nie zauważysz. Jako ćwiczenie pozostawione czytelnikowi porównaj .git / config jest z każdego katalogu.

 55
Author: Wes Hardaker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-20 17:19:45

Polecenie clone tworzy lokalną kopię określonego repo. remote add dodaje zdalny repo, do którego można albo pchać, albo z którego można wyciągnąć.

Odpowiednikiem svn clone jest checkout.

 11
Author: Rafe Kettler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-31 20:12:41

git clone:

Fizycznie pobierze pliki na Twój komputer. Zajmie to miejsce z komputera. Jeśli repo jest 200Mb, to pobierze to wszystko i umieści je w katalogu, który sklonowałeś.

git remote add:

Nie zajmie miejsca! To raczej wskaźnik! Nie Zwiększa to zużycia dysku. Po prostu dostaje migawkę tego, jakie gałęzie są dostępne i ich historię git commit, jak sądzę. Nie zawiera rzeczywistych plików / folderów twojego projekt.

Jeśli zrobisz:

git remote add TechLeadRepo  git://github.com/user/test.git
Więc nie dodałeś nic do swojego komputera. Po dodaniu go do zdalnych gałęzi możesz uzyskać listę wszystkich gałęzi na tym zdalnym, wykonując:
git fetch --all

Po pobraniu (lub ściągnięciu) pobierasz pliki, a następnie, jeśli chcesz przenieść gałąź feature22 twojego kolegi do lokalnego, po prostu wykonaj

git checkout -b myLocalFeature22 TechLeadRepo/feature22

Gdybyś sklonował jego repo, musiałbyś wejść do katalogu lokalnego repozytorium i po prostu checkout do pożądanej gałęzi

 7
Author: Honey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-15 08:57:25