Git — перебазировать на один коммит без разрешения конфликтов

Предположим, я работаю над веткой под названием my-branch, время от времени объединяя коммиты из master, чтобы оставаться в курсе последних событий. При некоторых слияниях мне приходилось разрешать конфликты, что отнимало много времени.

Теперь я закончил с my-branch и хочу перебазировать его на один коммит поверх master. Во время перебазирования мне придется разрешать те же конфликты, что будет утомительно.

Но у меня уже есть точное состояние, в котором мне нужны файлы, я просто хочу очистить историю. Итак, самый быстрый способ перебазировать:

  1. Перемотать на мастер
  2. Сделайте файлы такими же, как в my-branch, но отбросив историю коммитов. На данный момент у меня было бы много незафиксированных изменений.
  3. Сделать один коммит

Это возможно?

РЕДАКТИРОВАТЬ: ТАК говорит мне объяснить, почему мой вопрос не является дубликатом этот. В то время как ответ, получивший наибольшее количество голосов, решил бы мою проблему, вопрос заключается в том, «как раздавить коммиты?» и мой: «Я знаю, как раздавить коммиты, как это сделать, не имея конфликтов?». Итак, ответ тот же, но я не нашел его, когда искал решение, прежде чем публиковать здесь. Возможно, если кто-то еще знает о rebase, но не знает о программном сбросе, он найдет решение здесь.


person Rafał G.    schedule 21.02.2019    source источник
comment
Возможный дубликат раздавить мои последние X коммитов вместе с помощью Git   -  person Minn    schedule 21.02.2019
comment
Просто пошел туда, чтобы посмотреть ответы, и я рад видеть, что ответ, использующий git reset --soft, намного популярнее, чем ответ, основанный на git rebase.   -  person eftshift0    schedule 21.02.2019


Ответы (1)


Конечно... довольно просто использовать git reset --soft.

git checkout my-branch
git merge master -m "Merging last changes from master"
# we start the magic here
git reset --soft master # set the branch pointer on master
git commit -m "Here's the work for X feature in a single shot"
person eftshift0    schedule 21.02.2019
comment
Вот оно, спасибо. Это очень просто, я думаю, это должно быть в документах, но я не совсем понял это при первом прочтении. Время от времени приходится пересматривать основы. - person Rafał G.; 21.02.2019
comment
Хе. Раньше я говорил людям, что зарабатываю на жизнь чтением руководств, когда не хотел говорить о компьютерах. - person jthill; 21.02.2019