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

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

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

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

Правильно ли я понимаю оба варианта? Если да, то какой вариант «правильнее» решает поставленную задачу?
  • Вопрос задан
  • 16971 просмотр
Решения вопроса 1
toxa82
@toxa82
Вы неправильно поняли второй вариант git pull --rebase origin master,
он убирает ваши локальные коммиты, обновляет ветку (обычно это fast-forward), и потом после обновления снова применяет ваши коммиты.
А git fetch обновляет ваш origin репозиторий, но не применяет полученные изменения с вашими рабочими копиями
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
egor_nullptr
@egor_nullptr
git pull --no-commit пробовали?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы