Чем отличается git pull от git fetch
Перейти к содержимому

Чем отличается git pull от git fetch

  • автор:

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

Drupeople.ru

Команды 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 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 .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *