В чем разница между git pull и git fetch
Команды git pull и git fetch используются для обновления локального репозитория (чтобы скачать последние коммиты).
git fetch скачивает обновления из удаленного репозитория (remote), но не сливает их с текущей веткой. Другими словами вы скачаете новые коммиты, но не добавите их в историю изменений локального репозитория. Для завершения процесса обновления нужно будет сделать еще git merge. Эта операция безопасна для выполнения в любое время т.к. она не вносит изменения в локальную ветку.
git pull это команда-псевдоним сразу двух git команд — git fetch и git merge. Т.е. когда вы обновляете локальный репозиторий с помощью git pull, то все изменения не просто будут скачены, а еще и внедрятся (объединятся) в ваш локальный репозиторий. Другими словами эта команда обновит ваш локальный репозиторий до состояния на сервере.
Git pull и git fetch — в чём разница?
Git — полезный инструмент, но он непрост в освоении. Даже у опытных пользователей порой возникают вопросы по работе с ним. Сегодня мы попытаемся ответить на один из них: в чём разница между git pull и git fetch?
Разберёмся, чем отличаются команды git pull и git fetch .
При использовании pull , git пытается сделать всё за вас. Он сливает любые внесённые коммиты в ветку, в которой вы сейчас работаете. Команда pull автоматически сливает коммиты, не давая вам сначала просмотреть их. Если вы не пристально следите за ветками, выполнение этой команды может привести к частым конфликтам.
При использовании fetch , git собирает все коммиты из целевой ветки, которых нет в текущей ветке, и сохраняет их в локальном репозитории. Однако он не сливает их в текущую ветку. Это особенно полезно, если вам нужно постоянно обновлять свой репозиторий, но вы работаете над функциональностью, неправильная реализация которой может негативно сказаться на проекте в целом. Чтобы слить коммиты в основную ветвь, нужно использовать merge .
Грубо говоря, по дефолту git pull — это шоткод для последовательности двух команд: git fetch (получение изменений с сервера) и git merge (сливание в локальную копию).
Ещё не знакомы с git? Тогда посмотрите наше руководство для новичков, а также подборку ресурсов для продолжения знакомства с инструментом.
Следите за новыми постами по любимым темам
Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.
Какая разница между ‘git pull’ и ‘git fetch’?
Добрый день. Подскажите пожалуйста, какая разница между git pull и git fetch ? Пользуюсь SourceTree, но недавно решил пересесть на консольный Гит.
Отслеживать
задан 18 мар 2017 в 1:36
user232857 user232857
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
git pull — это, по сути, команда git fetch , после которой сразу же следует git merge .
git fetch получает изменения с сервера и сохраняет их в каталог refs/remotes/ .
Это никак не влияет на локальные ветки и текущие изменения. А git merge уже вливает все эти изменения в локальную копию.
Отслеживать
ответ дан 18 мар 2017 в 1:39
user207618 user207618
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
В чём разница между git pull и git fetch
Простыми словами, git pull выполняет git fetch , а затем git merge .
git fetch обновляет remote-tracking ветки в refs/remotes// . Эта операция безопасна для выполнения в любое время, поскольку она никогда не изменяет ни одну из ваших локальных ветвей в refs/heads .
git pull обновляет локальную ветку до ее remote версии, а также обновляет другие ваши remote-tracking ветки.
Из документации Git для git pull :
В дефолтном режиме git pull — это сокращение от git fetch , за которым следует git merge FETCH_HEAD .