В чем разница между git fetch и git pull? Когда что использовать?
Никак не могу понять разницу между командами git fetch и git pull.
Насколько я понял из документации, обе они нужны для получения обновлений из удаленного репозитория . Но git pull сразу же объединяет скачанные изменения с моей текущей веткой, а git fetch вроде как их просто загружает, но не применяет . Подскажите, зачем тогда нужен git fetch, если он ничего не делает с моими файлами? Может быть есть какие-то случаи, когда лучше использовать именно его, а не git pull? Читал, что git pull может вызвать конфликты, если не проверить изменения заранее.
fetch тянет данные с сервера и обновляет origin/main, а твою текущую ветку не трогает: можно спокойно глянуть что нового - git log HEAD..origin/main или git diff HEAD..origin/main, и решить самому - мержить или ребейзить. pull это тот же fetch плюс сразу merge (или rebase если настроено), поэтому конфликты вылезают только на этом шаге, сам fetch их вызвать не может. Юзай fetch когда хочешь сначала посмотреть что прилетело, pull когда сразу готов принимать.