Это зависит от вашего определения B'
, C'
и D'
.
Если вы хотите перемещаться вокруг патчей , то есть (в первом примере)git diff B C
== git diff A C'
, затем вы хотите "перебазировать" (не "reparent"), используя git rebase
, как описано Emil .
Если, с другой стороны,Вы хотите перемещаться вокруг снимков , тогда вы действительно хотите «перезаряжаться».Для этого я предлагаю использовать git reparent
.
Скорее всего, вы действительно хотите перебазировать, а не переписывать, но для справки, вот команды для переопределения.Они несколько сложны, потому что это ненормально.
(Ниже предполагается, что вы находитесь в филиале на D.)
1a.перевоспитание I
git rebase -i B
# Select the "edit" command for C
git reparent -p A
git rebase --continue
1b.перевоспитание II
git reparent -p B
1c.перевоспитание III
git rebase -i A
# Select the "edit" command for B
git reparent -p C
git rebase --continue