У меня есть мерзавец repo, который имеет несколько ответвлений - существует основное ответвление, которое является нашей стабильной рабочей версией, и затем существует ответвление разработки/подготовки, которое мы выполняем в новой работе.
К сожалению, казалось бы, что, не думая я был немного фанатичен с перебазированием и вытянул весь код подготовки в Ведущее устройство в течение времени (приблизительно 80 фиксаций... да, я знаю, глупая, неуклюжая, плохая поставка человека кода и т.д.....).
Из-за этого это делает его очень трудно, чтобы я сделал незначительный, закрепляет на текущей версии нашего приложения (приложение направляющих), и выставьте изменения, также не выставляя 'подготовленные' новые возможности, которые мы еще не хотим выпускать.
Я задаюсь вопросом, возможно ли сделать следующее:
К сожалению, тем не менее, я все еще постоянно узнаю о мерзавце, таким образом, я немного смущен тем, что действительно сделать здесь.
Между прочим, фиксации были продвинуты к удаленному, но я не возражаю повторно продвигать с - сила, я - единственный, кто продвигает удаленный.
Спасибо!
Будет проблема публикации (это означает, что вам придется:
если ваша ситуация:
m1-m2-m3-m4-s1-s2-s3-s4 (master,stage)
то есть, если ваш текущий мастер фактически также является ветвью текущего этапа, можно выполнить простой сброс (как knittl упоминает в его ответ )
Но если ваша ситуация:
m1-m2-m3-m4-s1-s2-s3-s4-m5-m6 (master)
\
-s5-s6 (stage)
как в: «Я интегрировал stage в мастер, а затем продолжаю работать над мастером!»
, то rebase - на в порядке:
git checkout master
git reset --HARD m4
git rebase --onto master s4 m6
вы получите:
m1-m2-m3-m4-m5'-m6' (master)
\
-s1-s2-s3-s4-s5-s6 (stage)
вы уже отправили свой коммит в удаленный репозиторий? если вы этого не сделали, вы можете просто использовать git reset
(обязательно прочитайте справочную страницу раньше, сброс может быть опасным и запутанным)