В чем разница между «git pull» и «git fetch»?

Примечание модератора: Учитывая, что на этот вопрос уже было отправлено шестьдесят семь ответов (некоторые из них удалены), подумайте, действительно ли вы ] добавив что-то новое , прежде чем опубликовать еще один.

Каковы различия между git pull и git fetch?

11242
задан Jonathan Leffler 3 November 2018 в 04:46
поделиться

6 ответов

Простым языком, git pull делает git fetch сопровождаемый git merge.

можно сделать git fetch в любое время для обновления удаленно отслеживающих ответвлений под refs/remotes/<remote>/.

Эта операция никогда не изменяет ни одного из Ваших собственных локальных ответвлений под refs/heads и безопасна обойтись без изменения Вашей рабочей копии. Я даже услышал о людях, работающих git fetch периодически в задании крона в фоновом режиме (хотя я не рекомендовал бы делать это).

А git pull - то, что Вы сделали бы для обеспечения локального ответвления, актуального с его удаленной версией, также обновление другого удаленного отслеживания переходит.

документация Мерзавца †“ получение по запросу мерзавца :

В ее режиме по умолчанию, git pull стенография для git fetch сопровождаемый [1 110].

9353
ответ дан Alec Alameddine 3 November 2018 в 04:46
поделиться
git-pull - Fetch from and merge with another repository or a local branch
SYNOPSIS

git pull   …
DESCRIPTION

Runs git-fetch with the given parameters, and calls git-merge to merge the 
retrieved head(s) into the current branch. With --rebase, calls git-rebase 
instead of git-merge.

Note that you can use . (current directory) as the <repository> to pull 
from the local repository — this is useful when merging local branches 
into the current branch.

Also note that options meant for git-pull itself and underlying git-merge 
must be given before the options meant for git-fetch.

Вы вытянули бы, если бы Вы хотите объединенные истории, Вы выбрали бы, если Вы просто 'хотите коды', поскольку некоторый человек отмечал некоторые статьи здесь.

171
ответ дан Vinko Vrsalovic 3 November 2018 в 04:46
поделиться

Вкратце:

Выборка Мерзавца похожа на ВЫБОР SQL. Это только покажет Вам что-то, но не обновит или изменит что-либо.

Получение по запросу Мерзавца похоже на ВЫБОР SQL тогда после этого, обновите мою локальную копию.

-7
ответ дан 22 November 2019 в 19:37
поделиться

Все ответвления хранятся в .git/refs
, Все локальные ответвления хранятся в .git/refs/heads
, Все удаленные ответвления хранятся в .git/refs/remotes

git fetch фиксации загрузок команды, файлы и судьи из удаленного репозитория в Ваш локальный repo. Выборка - то, что Вы делаете, когда Вы хотите видеть то, что все другие продолжали работать.

Поэтому, когда Вы делаете git fetch, все файлы, фиксации и судьи загружаются в этом .git/refs/remotes, можно переключиться на эти ответвления для наблюдения изменений. Можно объединить их, если Вы хотите.

git pull просто загрузки эти изменения и также объединяет их с текущим ответвлением.

2
ответ дан 22 November 2019 в 19:37
поделиться

Я просто хочу добавить маленькую дополнительную информацию. Получение по запросу мерзавца

git fetch 

сопровождается

git merge --ff

, Эта опция, добавленная к слиянию, является причиной, почему это не создает фиксацию слияния.

3
ответ дан 22 November 2019 в 19:37
поделиться

Потрясающая Статья об этой теме: https://www.git-tower.com/learn/git/faq/difference-between-git-fetch-git-pull

1
ответ дан 22 November 2019 в 19:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: