Git - пребазиране до един ангажимент без разрешаване на конфликти

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

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

Но вече имам точното състояние, в което трябва да бъдат файловете, просто искам да изчистя хронологията. Така че най-бързият начин за пребазиране би бил:

  1. Превъртете назад, за да овладеете
  2. Направете файловете същите като в my-branch, но изхвърлете историята на записите. На този етап бих имал много необвързани промени.
  3. Направете един ангажимент

Това възможно ли е?

РЕДАКТИРАНЕ: SO ми казва да обясня защо въпросът ми не е дубликат на този. Въпреки че отговорът с най-високо гласуване там би решил проблема ми, въпросът там е „как да смачкам ангажименти?“ и моят е "Знам как да смачквам ангажименти, как да го направя, без да се занимавам с конфликти?". Така че отговорът е същият, но не го намерих, когато търсих решението, преди да публикувам тук. Може би ако някой друг също знае за повторното базиране, но не знае за меките нулирания, ще намери решението тук.


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