2015-01-26 4 views
6

Я совершил фиксацию, CM, а затем применил несколько патчей, P1 и P2. Так что моя история выглядитпереместить одну фиксацию в верхнюю часть всех коммитов

C1-C2-CM-P1-P2 

где C1 и C2 два предыдущих фиксаций.

Проблема в том, что я забыл создать патч для моей фиксации. Как перенести мой фиксатор CM в начало коммита? История должна выглядеть так:

C1-C2-P1-P2-CM 

ответ

7

Если вы не толкать вашу ветку, то вы можете сделать интерактивный перебазироваться:

git rebase -i C2 

Вы можете изменить порядок коммитов, как P1-P2-CM и повторно применять их на вершине C2.

4

Вы можете использовать rebase -i.

$ git rebase -i HEAD~5 

Он откроет ваш текстовый редактор с последними 5 фиксациями. Замените фиксации в том порядке, который вы хотите, затем сохраните и закройте.

+0

HEAD ~ 3 или C2 (как я упоминаю в своем ответе) должно быть достаточно. – VonC

1

Сделайте git rebase -i C1, а затем в появившемся редакторе измените порядок фиксации, сохраните и закройте. Если нет конфликтов или вещей, это изменит порядок.

+0

Почему C1? C2 (как я упоминаю в моем ответе) должно быть достаточно здесь. – VonC

+0

Должно быть. Я только что выбрал первый коммит, который я мог видеть. –

Смежные вопросы