Подтвердить что ты не робот

Git: переместить фиксацию "сверху"

Скажем, в master У меня отключена функция. Я работаю над этой функцией на ветке feature, поэтому у меня есть специальная фиксация $, которая просто включает эту функцию. Теперь я хочу объединить изменения, которые я сделал в feature, в master, но сохраните вывод включения. Так что это нравится

main:    A--B--X--Y
feature: A--B--$--C--D

Итак, скажем, я хочу это сделать, переместив $ commit поверх функции:

new feature: A--B--C--D--$

Как я могу это сделать?

4b9b3361

Ответ 1

git rebase -i B, а затем переместите $ в конец списка, который отображается в вашем редакторе. Он начнется как первая строка в открывшемся файле. Вы также можете просто удалить эту строку целиком, которая просто удалит это сообщение из истории ваших веток.

Ответ 2

Если вы хотите сохранить фиксации в том же порядке на feature, вы должны создать новую ветку и выполнить следующее. В противном случае просто сделайте это на feature

git rebase -i <sha for commit B>

Переместить фиксацию $в нижнюю часть списка

git checkout master
git rebase feature <or the other branch name>

Мне было непонятно, но если вы не хотите $вообще, а не перемещаете его, удалите его после git rebase -i. Хотя вы захотите сделать это на новой ветке, потерять его. По мере изменения истории.

Это также предполагает, что ветвь feature не была нажата на удаленный компьютер, так как история перезаписи плохая.