W3docs

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.

gitpull

Использование 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. Затем будет создан новый локальный коммит слияния с содержимым новых разошедшихся удалённых коммитов.

gitpull1

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

gitpull2

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

gitpull3

Основные опции

КомандаОписание
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' являются верными?