Git Pull
Последнее обновление
git pull обновляет вашу текущую ветку последними коммитами из её удалённого репозитория. Под капотом он выполняет git fetch, чтобы загрузить изменения, а затем git merge, чтобы их интегрировать, так что git pull = git fetch + git merge. Добавьте --rebase, чтобы вместо создания коммита слияния переприменить ваши локальные коммиты поверх.
Попробуйте это в терминальном playground: настоящая оболочка в вашем браузере, ничего устанавливать не нужно.
Синтаксис
| Command | What it does |
|---|---|
git pull | Получает и сливает удалённую версию текущей ветки |
git pull origin main | Получает конкретную ветку из удалённого репозитория |
git pull --rebase | Получает, а затем перебазирует ваши коммиты поверх |
git pull --ff-only | Получает только при возможности fast-forward (без слияния) |
git pull --no-rebase | Принудительно выполняет слияние, даже если rebase установлен по умолчанию |
Частые случаи
| Goal | Command |
|---|---|
| Получить последнее на вашей ветке | git pull |
| Сохранить историю линейной | git pull --rebase |
| Прервать pull, столкнувшийся с конфликтами | git merge --abort |
| Отбросить локальные коммиты и совпасть с удалённым | git fetch затем git reset --hard origin/main |
Вопросы и ответы по git pull
Что на самом деле делает git pull?
Он загружает последние коммиты из удалённого репозитория для вашей текущей ветки и интегрирует их в вашу локальную ветку. Это сокращение для двух команд:
git fetch (загрузка), за которой следует git merge (интеграция). Если вы настроите это, шаг слияния заменится на rebase.В чём разница между git pull и git fetch?
git fetch только загружает удалённые изменения и обновляет ваши ветки отслеживания удалённого репозитория, не затрагивая вашу рабочую ветку. git pull выполняет этот fetch, а затем сливает изменения в вашу текущую ветку. Используйте fetch, чтобы сначала просмотреть входящие изменения; используйте pull, чтобы получить и интегрировать их за один шаг.Что такое git pull --rebase и когда его использовать?
git pull --rebase получает удалённые коммиты, а затем переприменяет ваши локальные коммиты поверх них вместо создания коммита слияния. Он сохраняет историю линейной, что предпочитают многие команды. Используйте его, когда у вас есть локальные коммиты, которые ещё не отправлены, и вы хотите избежать коммита слияния при каждом pull.Как исправить конфликты после git pull?
Pull может вызвать конфликты слияния, когда локальные и удалённые изменения пересекаются. Откройте конфликтующие файлы, разрешите отмеченные участки, затем выполните для них
git add и git commit (для слияния) или git rebase --continue (для pull с rebase). Если вы предпочитаете отменить, выполните git merge --abort или git rebase --abort.Могу ли я потренироваться в этом онлайн?
Да. Откройте терминальный playground, чтобы выполнить
git pull в настоящей оболочке в вашем браузере, ничего устанавливать не нужно. Бесплатный интерактивный курс Git от Coddy также пошагово охватывает работу с удалёнными репозиториями.