Git fetch и git pull — их различия

git fetch — это процедура, с помощью которой удалённые коммиты из репозитория git копируются в локальную рабочую копию репозитория. Она используется для пополнения или обновления содержимого рабочей копии. Удалённый коммит может быть обновлён, если в рабочем репозитории есть новая версия. После того как удалённый репозиторий обновляется, удалённые в нём коммиты становятся действительными, и их можно будет вернуть на место.

При использовании pull, git пытается сделать всё за вас. Он сливает любые внесённые коммиты в ветку, в которой вы сейчас работаете. Команда pull автоматически сливает коммиты, не давая вам сначала просмотреть их. Если вы не пристально следите за ветками, выполнение этой команды может привести к частым конфликтам.

При использовании fetch, git собирает все коммиты из целевой ветки, которых нет в текущей ветке, и сохраняет их в локальном репозитории. Однако он не сливает их в текущую ветку. Это особенно полезно, если вам нужно постоянно обновлять свой репозиторий, но вы работаете над функциональностью, неправильная реализация которой может негативно сказаться на проекте в целом. Чтобы слить коммиты в основную ветвь, нужно использовать merge.

git pull — это шоткод для последовательности двух команд: git fetch — получение изменений с сервера и git merge — сливание в локальную копию.