В принципе, я просто хочу (re) установить родительский (пусть скажем, commit A) конкретного commit (commit B), который является корневым фиксацией какой-либо ветки x. Здесь предлагается в одном из ответов, который я могу сделать с помощью трансплантатов. Я попробую это позже, может быть, это лучший способ.
Однако, прежде чем читать это, я подумал, что это должно быть возможно через rebase. Но поскольку родительский commit A немного отличается от B, и я просто хочу оставить целую ветвь x так, как она есть, только с установкой родителя на свой корневой фиксатор B, я думал, что могу использовать стратегия theirs, которая, похоже, не существует. Я наткнулся на это раньше (и думал, что это ошибка или моя установка Git), и всегда просто работаю, переключая ветки и используя стратегию ours. Однако при rebase в этом случае я вынужден использовать стратегию theirs.
Моя команда выглядит так:
git rebase -s theirs --onto A --root x x--rebased