Разница между git remote add и git clone - PullRequest
60 голосов
/ 31 января 2011

Что делает команда clone? Есть ли в svn эквивалент?

В чем разница между

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

А

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

Имеет ли значение имя созданного репо?

Ответы [ 4 ]

59 голосов
/ 31 января 2011

git remote add просто создает запись в вашей конфигурации git, которая указывает имя для определенного URL.У вас должен быть существующий репозиторий git, чтобы использовать это.

git clone создает новый репозиторий git, копируя существующий, расположенный по указанному вами URI.

46 голосов
/ 01 февраля 2011

Они функционально аналогичны (попробуйте!):

 # git clone REMOTEURL foo

и:

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

Теперь есть небольшие различия, но в принципе вы, вероятно, их не заметите.В качестве упражнения для читателя сравните .git / config из каждого каталога.

9 голосов
/ 31 января 2011

Команда clone создает локальную копию указанного репо.remote add добавляет удаленное репо, к которому вы можете либо добавлять, либо извлекать.

SVN-эквивалент clone равен checkout.

2 голосов
/ 01 октября 2018

git clone:

Физически загрузит файлы на ваш компьютер.Это займет место с вашего компьютера.Если объем репо составляет 200 МБ, он загрузит все это и поместит в каталог, который вы клонировали.

git remote add:

Не займет место!Это больше похоже на указатель!Это не увеличивает ваше дисковое потребление.Я просто получаю снимок того, какие ветки доступны, и историю их git commit, я верю.Он не содержит фактический файл / папки вашего проекта.

Если вы сделаете:

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

, значит, вы ничего не добавили на свой компьютер.После того, как вы добавили его в свои удаленные ветви, вы можете получить список всех филиалов на этом удаленном компьютере, выполнив:

git fetch --all

И затем, если вы захотите, добавьте ветку feature22 вашего коллеги ввы бы просто сделали

git checkout -b myLocalFeature22 TechLeadRepo/feature22

Я полагаю, что после того, как вы оформите заказ, он извлечет последние изменения и займет место на вашем компьютере.Очевидно, он займет место только для всех новых коммитов, которых у вас нет.

Если бы вы клонировали его репо, вам нужно было бы зайти в каталог этого локального репозитория и перейти в нужную ветку

...