Git Fetch vs Pull: в чем разница между командами Git Fetch и Git Pull?

Git pullи fetchдве команды, которые регулярно используются пользователями Git. Давайте посмотрим на разницу между обеими командами.

Для контекста стоит помнить, что мы, вероятно, работаем в репозитории клонов. Что за клон? Это просто дубликат другого репозитория. По сути, это получение вашей собственной копии чужого исходного кода.

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

Вот откуда fetchи pullзайти.

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

git pull с другой стороны, делает это И переносит (копирует) эти изменения из удаленного репозитория.

Например:

git pull origin ankur bugfix

Вывод: не забывайте, что на вашей рабочей станции обычно есть не менее трех копий проекта.

  • Одна копия - это ваш собственный репозиторий с собственной историей коммитов (так сказать, уже сохраненной).
  • Вторая копия - это ваша рабочая копия, в которой вы редактируете и строите (еще не зафиксировано в вашем репо).
  • Третья копия - это ваша локальная «кэшированная» копия удаленного репозитория (вероятно, оригинал, из которого вы клонировали свой).

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

git fetch git diff ...origin