Интерактивная перестановка ветки с ее точкой расхождения от мастера

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

git rebase -i <commit>

Я знаю, что могу использовать git merge-base <branch1> <branch2 || master>, чтобы найти фиксацию, чтобы две ссылки могли отслеживать их родословную и могли использовать ее для определения фиксации. Я хотел бы знать, есть ли лучший способ интерактивно переустановить всю эту ветвь (независимо от того, продвинулся ли мастер или нет), чем использовать

git rebase -i `git merge-base my_branch master`

EDIT: я не хочу менять родительский элемент первого коммита, сделанного в этой ветки, поэтому git rebase -i master будет работать только в том случае, если оба мастера не были созданы с момента создания ветки и ветвь была создана из фиксации мастер указывает на.

Ответы

Ответ 1

Возможно, я не понимаю ваш вопрос, но я думаю, что git rebase -i master должен делать то, что вы хотите. Он будет определять базу слияния и переустанавливать всю ветвь с этой точки на текущую HEAD, чтобы она, казалось, была разветвлена ​​с текущего наконечника мастера.

Кроме того, если мастер не продвинулся, то перезагрузка будет в значительной степени нерабочей.