2016-09-17 5 views
3

Это мой график:Git - как обновить старый совершить

Branch A a-->b 
       | 
       v 
Branch B  b-->c 

У меня есть филиал B, который вышел из отделения A от совершения b.
Я сделал фиксацию на ветке B под названием c.

Теперь предположим, что я обновляю совершить b филиала A с git commit --amend в b'

Branch A a-->b' 
       | 
       v 
Branch B  b-->c 

Как обновить COMIT b на ветке B быть точным b'?

Благодаря

ответ

3

На самом деле, GRAP является

a--b (A) 
    \ 
    c (B) 

После исправления, вы бы новый b' (маркировка b в tmp):

a--b' (A) 
\ 
    b--c (B) 
(tmp) 

Вы должны перебазироваться B на A:

git rebase --onto A tmp B 

a--b' (A) 
    \ 
    c' (B) 

Как divyum комментарии, вы также можете объединить, но это было бы добавить, и дублировать b фиксации между ними, в результате возможных конфликтов:

a--b'--M (A) 
\ /
    b--c (B) 

Я предпочитаю вишни комплектование или перебазирования.

+0

не будет сливать A в B или забрать вишню из A в B? – divyum

+0

@divyum 'rebase --onto' - это сборка вишней каждой фиксации после' tmp' до 'B' HEAD и воспроизведение на' A': см. Http://stackoverflow.com/a/1994491/6309. – VonC

+0

ohk, имеет смысл или скорее объединить A в B. @VonC – divyum

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