git pull
On this page, you can find useful information about the git pull command, its usage, the most common options, and important tips concerning it.
Определение
Команда 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' являются верными?