Задать вопрос

Обновление мастер-ветки: git pull VS git pull --rebase?

Задача — подтянуть последние изменения из origin-ветки и не «захламить» историю.

1) Традиционный вариант — (master) $ git pull origin master, однако он делает merge и оставляет «отметку» мержа.

2) Сделать (master) $ git pull --rebase origin master, что полностью заменяет содержимое репозитория на последнее актуальное (за исключеним локальных коммитов).

Правильно ли я понимаю оба варианта? Если да, то какой вариант «правильнее» решает поставленную задачу?
  • Вопрос задан
  • 17023 просмотра
Подписаться 7 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Решения вопроса 1
toxa82
@toxa82
Вы неправильно поняли второй вариант git pull --rebase origin master,
он убирает ваши локальные коммиты, обновляет ветку (обычно это fast-forward), и потом после обновления снова применяет ваши коммиты.
А git fetch обновляет ваш origin репозиторий, но не применяет полученные изменения с вашими рабочими копиями
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
egor_nullptr
@egor_nullptr
git pull --no-commit пробовали?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
ИТРУМ Ростов-на-Дону
от 75 000 ₽