Исправление коммита, произошедшего до слияния - PullRequest
2 голосов
/ 07 декабря 2011

Рассмотрим следующую историю

R--A--B--C------F--H--D'
 \             /
  -------- D--E

D '- исправление для коммита D, которое я хочу интегрировать в историю, но git rebase -i не позволяет мне это сделать.

Я могу воссоздать историю вручную, сбросив E, fixup, redo merge и cherry-pick H, но он испортил даты фиксации и это громоздко.

Как мне продолжить?

Ответы [ 2 ]

2 голосов
/ 07 декабря 2011

Я думаю, что ваш лучший вариант - это, вероятно, то, что вы сказали: сброс, повтор слияния, выбор вишни H. Чтобы сохранить старые даты фиксации, вы должны быть в состоянии сделать что-то вроде этого:

git merge --no-commit my-branch
git commit -C <sha of F>
git cherry-pick <sha of H>
0 голосов
/ 25 марта 2013

Мне пришлось сделать это в другой раз, и попробовал опцию --preserve-merges до git rebase -i, она отлично работает.

Нет необходимости повторять слияние вручную!

...