Перебазирование дерева (коммит / ветка и все ее дочерние элементы) [дубликаты]

На этот вопрос уже есть ответ здесь:

Перебазирование ветки, включая всех ее детей 3 ответа

Это мое текущее дерево мерзавцев:

A - H (master)
|
\- B - C - D - E (feature)
           |
           \- F (new)
           |
           \- G (other)

И я'Я хотел бы перебазировать боковую ветвь так, чтобы она зависела отH скорее, чем :A

A - H (master)
    |
    \- B'- C'- D'- E'(feature)
               |
               \- F'(new)
               |
               \- G'(other)

Кажется, простая концепция, трудно сделать автоматически. Это уже спрашивалиВот а такжеВот, но предложенные решения не работают для меня.

Во-первых, как указано в первом,git branch выход не является тривиальным для анализа, когда текущая ветвь есть (есть* указывая префикс). Но это'не пробка, в моем случае я могу легко предоставить имена,featurenew а такжеother вручную или убедитесь, что текущая ветвь есть.master

Затем я попытался с этими командами:

git rebase --committer-date-is-author-date --preserve-merges --onto master feature^ feature
git rebase --committer-date-is-author-date --preserve-merges --onto master feature^ new
git rebase --committer-date-is-author-date --preserve-merges --onto master feature^ other

и я в итоге:

A - H (master)
    |
    \- E'(feature)
    |
    \- B' - C' - D' - F'(new)
    |
    \- B" - C" - D" - G'(other)

Определенно не то, что я хочу! Или, если я используюB^ вместоfeature^тогда я тоже получаюB - C - D история вfeature ветка.

Итак, какие-либо дальнейшие предложения о том, как сделать это более или менее автоматически?

РЕДАКТИРОВАТЬ: Это вроде работает с этим:

git checkout feature
git merge other
git merge new
git rebase -p master feature

Теперь, по крайней мере, дерево выглядит правильно, мне просто нужно передвинуть головки веток к их правым коммитам до слияния ... что можно сделать с помощью:

git checkout master
git branch -f new feature^2
git branch -f feature feature^1
git branch -f other feature^2
git branch -f feature feature^1

Ответы на вопрос(4)

Ваш ответ на вопрос