Как обновить ветку в Git без переключения на неё

Предположим, вы работаете в ветке feature, а коллеги обновили master. Вам нужно подтянуть свежие изменения в локальный master, но не хочется терять контекст и переключаться туда-обратно. Стандартный git pull работает только с текущей веткой. Что делать?

Решение – специальная форма git fetch, которая обновляет указанную локальную ветку, не меняя ваше рабочее состояние.

  • <remote> – обычно origin.
  • <удалённая_ветка> – имя ветки на сервере (например, masterdevelop).
  • <локальная_ветка> – имя локальной ветки, которую вы хотите обновить.

Пример

Вы находитесь на ветке feature и хотите обновить локальный master до состояния origin/master

Локальная ветка master будет продвинута вперёд (если это возможно) до того же коммита, что и origin/master. При этом вы останетесь на ветке feature с неизменённым рабочим каталогом и индексом.

Важное ограничение

Это работает только для быстрой перемотки (fast-forward).

Если в вашем локальном master есть коммиты, которых нет в origin/master, Git откажется выполнять операцию, чтобы вы случайно не потеряли историю. Будет выдана ошибка:

В такой ситуации Git не может просто «переместить указатель» – требуется слияние или ребейз. Это сделано специально для защиты от потери данных.

Что делать, если нужна перемотка с принуждением?

Если вы абсолютно уверены, что хотите перезаписать локальную ветку (например, вы случайно закоммитили в master что-то ненужное), можно использовать принудительный вариант с плюсом перед источником:

Это заменит вашу локальную ветку master на содержимое origin/master без всяких проверок. Коммиты, которые были только в локальном master, будут потеряны. Эта команда полезна для сброса ветки до состояния, которое точно соответствует удалённой.

Этот же приём, но для локальных веток

Этот же трюк работает и для обновления одной локальной ветки из другой (без слияния, только fast-forward). Синтаксис:

Например, обновить master до текущего состояния develop (если develop содержит все коммиты master + новые):

Мало букафф? Читайте есчо !

Подключение к GitHub по SSH: пошаговая инструкция

Сентябрь 3, 2025 г.

Работа с репозиториями через SSH удобнее и безопаснее, чем по HTTPS — вам не нужно вводить пароль при каждом пуше, а авторизация выполняется с помощью криптографических ключей. Разберём процесс полностью: от создания ключа до проверки подключения. ...

Читать

GIT workflow или как работать с проектом

Апрель 2, 2024 г.

Как использовать GIT, может зависеть от многих факторов, например как проходит тестирование, работает ли целая команда над проектом или один разработчик соло. Соло разработка Концепция работы с GIT в случае одного разработчика сводится обычно ...

Читать

Установка Wordpress через composer

Апрель 3, 2023 г.

WP так то и сам хорошо управляется с модулями и темами. Вы можете установить модули/темы через админку. Единственный не удобный момент - это первоначальное ...

Читать

Создание патча для модуля Drupal

Декабрь 4, 2017 г.

В Drupal для решения ваших задач вы подбираете contributed модули. Отлично, если модуль поддерживается автором, в нем нет багов и есть нужный вам функционал. В противном случае, вы, возможно, правите модуль и используете его для себя. Но, наверное, было ...

Читать
 

Комментарии к «Как обновить ветку в Git без переключения на неё»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: