В чем разница между pull и clone в git?
в чем разница между делать (после mkdir repo и cd repo):
git init
git remote add origin git://github.com/cmcculloh/repo.git
git fetch --all
git pull origin master
и
git clone git://github.com/cmcculloh/repo.git
Я имею в виду, очевидно, что один короче, но кроме этого они в основном делают то же самое?
7 ответов:
Они в основном одинаковы, за исключением того, что clone установит дополнительные ветви удаленного отслеживания, а не только master. Проверьте на странице:
клонирует репозиторий во вновь созданный каталог, создает ветви удаленного отслеживания для каждой ветви в клонированном репозитории (видимые с помощью git branch-r), а также создает и проверяет начальную ветвь, которая разветвляется из текущей активной ветви клонированного репозитория.
git cloneЭто то, как вы получаете локальную копию существующего репозитория для работы. Обычно он используется только один раз для данного репозитория, если вы не хотите иметь несколько рабочих копий. (Или хотите получить чистую копию после испорченного локального...)
git pull(илиgit fetch+git merge) как вы обновление эта локальная копия с новыми коммитами из удаленного репозитория. Если вы сотрудничаете с другими, это команда, которую вы будете запускать часто.как показывает ваш первый пример, можно эмулировать
git cloneс ассортиментом других команд Git, но это не совсем так чтоgit pullделает "в основном то же самое" какgit clone(или наоборот).
на непрофессиональном языке мы можем сказать:
- клон: получить рабочую копию удаленного репозитория.
- тянуть: Я работаю над этим, пожалуйста, дайте мне новые изменения, которые могут быть обновлены другие.
git cloneзначит вы делаете копию репозитория в вашей системе.
git forkозначает, что вы копируете репозиторий в свою учетную запись Github.
git pullозначает, что вы получаете последний измененный репозиторий.
git pushозначает, что вы возвращаете репозиторий после его изменения.простыми словами:
git cloneзагрузка иgit pullосвежает.
clone: копирование репозитория удаленного сервера на локальную машину.
тянуть: получить новые изменения другие добавили к вашей локальной машине.
вот в чем разница.
клон обычно используется для получения удаленной копии РЕПО.
Pull используется для просмотра других товарищей по команде добавлен код, если вы работаете в командах.
Хм, чего не хватает, чтобы увидеть удаленную ветку "4.2", когда я тяну, как я делаю, когда я клонирую? Что-то явно не идентично.
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 * mastervs
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
в то время как
git fetchкоманда соберет все изменения на сервере, которые у вас еще нет, она вообще не изменит ваш рабочий каталог. Он просто получит данные для вас и позволит вам объединить их самостоятельно. Однако, существует команда под названиемgit pullчто по сути являетсяgit fetchсразу послеgit mergeв большинстве случаев.подробнее:https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Pulling
Comments