git pull
Определение
Команда git pull загружает и скачивает содержимое из удалённого репозитория, а также интегрирует изменения в локальный репозиторий. Команда git pull представляет собой комбинацию git fetch и git merge.

Использование git pull
Команда git pull — одна из команд, участвующих в процессе «синхронизации». Эти команды работают с удалёнными ветками, которые настраиваются с помощью команды git remote. Коммиты загружаются с помощью git push, а скачиваются с помощью git fetch и git pull. После внесения изменений в обоих случаях для интеграции изменений используется git merge. И git fetch, и git pull используются для скачивания содержимого из удалённого репозитория. Команда git fetch не требует обязательного слияния изменений в репозиторий, тогда как git pull не только скачивает удалённое содержимое, но и сливает его с текущей рабочей копией.
Как это работает
Чтобы понять процесс pull и слияния, рассмотрим следующий пример. Существует репозиторий с веткой master и удалённым репозиторием origin. Команда git pull скачивает изменения с точки, в которой локальная и мастер-ветки разошлись. На иллюстрации показано, что этой точкой является E. Здесь вы видите удалённые коммиты A, B и C, которые будут получены с помощью git pull. Затем будет создан новый локальный коммит слияния с содержимым новых разошедшихся удалённых коммитов.

На иллюстрации показан новый коммит H, который содержит всё содержимое коммитов A, B и C с объединённым сообщением в журнале.

Использование git pull с опцией --rebase применяется для слияния вместо git merge.

Основные опции
| Команда | Описание |
|---|---|
git pull <remote> | Загружает содержимое удалённого репозитория и напрямую сливает его с локальной копией (эквивалентно git fetch <remote>, за которым следует git merge origin/<current-branch>). |
git pull --no-commit <remote> | Загружает содержимое удалённого репозитория, но не создаёт коммит слияния. |
git pull --rebase <remote> | Интегрирует удалённую ветку с локальной. |
git pull --verbose | Показывает загруженное содержимое и детали слияния, выводя подробный вывод во время выполнения pull. |
Примеры
Вызов git pull без аргументов загружает и сливает изменения из ветки upstream, настроенной для текущей ветки. HEAD — это ссылка, указывающая на текущую ветку.
git pull
git pullПолучение изменений из конкретной ветки удалённого репозитория:
git pull для удалённых репозиториев
git pull <remote> <branch>Эта команда загрузит и сольёт изменения из указанной ветки удалённого репозитория.
Например, если вы хотите получить изменения из ветки develop удалённого репозитория origin, используйте следующую команду:
git pull origin developПолучение изменений из удалённого репозитория и применение ребаза ваших изменений поверх них:
git pull через ребааз
git pull --rebaseЭта команда загрузит изменения из удалённого репозитория и выполнит ребааз ваших локальных изменений поверх них, вместо их слияния. Это может быть полезно, если вы хотите сохранить линейную историю коммитов и избежать коммитов слияния.
Получение изменений из удалённого репозитория без автоматического слияния:
git pull --no-commit
git pull --no-commitЭта команда загрузит изменения из удалённого репозитория, но не будет автоматически сливать их с вашей локальной веткой. Вместо этого изменения останутся в качестве подготовленных (staged) изменений, которые вы можете просмотреть и закоммитить вручную.
Практика
Какие из следующих утверждений о команде 'git pull' являются верными?