В чем разница между 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


Я имею в виду, очевидно, что один короче, но кроме этого они в основном делают то же самое?

1001   7  

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
* master

vs

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

    Ничего не найдено.