Git: переместить коммит "сверху"
Скажем в master
У меня есть функция отключена. Я работаю над этой функцией на ветке feature
поэтому у меня есть специальный коммит $
там, что просто включает эту функцию. Теперь я хочу объединить изменения, которые я сделал в feature
в master
, но держите разрешающий коммит вне. Так как
main: A--B--X--Y
feature: A--B--$--C--D
Так скажем, я хочу сделать это, перемещая $
совершить в верхней части функции:
new feature: A--B--C--D--$
Как бы я поступил так?
2 ответа
git rebase -i B
, а затем двигаться $
в конец списка, который появляется в вашем редакторе. Это начнется как первая строка в файле, который открывается. Вы также можете просто полностью удалить эту строку, которая просто удалит этот коммит из истории вашей ветки.
Если вы хотите сохранить ваши коммиты в том же порядке на feature
Вы должны сделать новую ветку и выполнить следующее. В противном случае просто сделайте это на feature
git rebase -i <sha for commit B>
Переместить коммит $ в конец списка
git checkout master
git rebase feature <or the other branch name>
Мне было непонятно по этому вопросу, но если вы вообще не хотели $, вместо того, чтобы перемещать его, удалите его после git rebase -i
Хотя вы захотите сделать это на новой ветке, чтобы не потерять ее. Как вы меняете историю.
Это также предполагает, что филиал feature
не был перенесен на пульт, так как переписывание истории плохо.