В чем разница между выполнением (после 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
Я имею в виду, очевидно, что один короче, но кроме этого они в основном делают то же самое?
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
обновляется.источник
клон : копирование репозитория удаленного сервера на локальный компьютер.
pull : получать новые изменения, добавленные на локальный компьютер.
Это разница.
Клон обычно используется для удаленного копирования репо.
Pull используется для просмотра кода других партнеров, если вы работаете в команде.
источник
git clone используется для того, чтобы просто загрузить именно то, что в данный момент работает в репозитории удаленного сервера, и сохранить его в папке вашего компьютера, где находится этот проект. В основном это используется только тогда, когда мы собираемся загрузить проект в первый раз. После этого тянуть - лучший вариант.
git pull - это, по сути, операция (клонирование (загрузка) + слияние), и в основном она используется, когда вы работаете в команде. Другими словами, когда вы хотите последние изменения в этом проекте, вы можете тянуть.
источник
Мисс Клон: я получаю свежую копию для местных.
Мистер Пулл: У меня это уже есть на месте, я просто обновляю его.
Мисс Клон: я могу делать то, что вы делаете! Вы просто мое подмножество.
Мистер Пулл: То же самое!
Мисс Клон: Нет, вы не создаете. Вот что я делаю:
Вы только делаете # 3, и затем вы сливаетесь, что мне не нужно делать (мое свежее).
Мистер Пулл: Умные штаны, ничего страшного, сначала я сделаю "git init"! Тогда мы одинаковы. Плюс у меня есть дополнительная возможность «слияния» в существующем репо! Что делает меня самой используемой командой в Git;)
Создатели Git: удерживайте своих лошадей, мистер Пулл, если --bare или --mirror используются с клоном или init, ваше слияние не произойдет. Это остается только для чтения.
источник
Хм, чего не хватает, чтобы увидеть удаленную ветку "4.2", когда я тяну, как я делаю, когда я клонирую? Что-то явно не идентично.
против
источник
URL-адрес git clone ---> Полный проект или репозиторий будут загружены в виде отдельного каталога. а не только изменения git pull URL ---> fetch + merge -> он будет получать только те изменения, которые были сделаны, а не весь проект
источник
Хотя
git fetch
команда извлечет все изменения на сервере, которых у вас еще нет, она вообще не изменит ваш рабочий каталог. Он просто получит данные для вас и позволит вам объединить их самостоятельно. Тем не менее, есть команда с именем,git pull
которая в большинстве случаевgit fetch
сразу следует за agit merge
.Подробнее: https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Pulling
источник
Клон -: он создаст точно дубликат копии вашего проекта удаленного хранилища на вашем локальном компьютере.
Pull -: предположим, два или более двух человек используют один и тот же репозиторий. (Предположим, что другого человека зовут Syam) (Репозиторий - это место, где ваш проект существует в Github). Поэтому, если Syam вносит некоторые изменения в тот же проект в своем локальном хранилище и передает его в удаленный репозиторий, то, что бы ни делали Syam, эти изменения будут не отражать в вашем местном. Таким образом, чтобы отразить эти новые изменения в вашем регионе, вы должны использовать git pull. В целом мы используем git pull для обновления проекта.
Так что в основном мы используем git clone только один раз, тогда как мы используем git pull много раз.
источник