среда, 15 июля 2015 г.

Reverting merge in git

Чтобы отменить неудачный мерж в git нужно узнать его sha-хеш в логе и выполнить git revert -m 1 %hash%. Параметр -m требуется чтобы указать git какого из родителей мерж комита нужно оставить.

$ git revert -m 1  975a217272bb91fd 
[master 268298c] Revert "Merge branch 'fix_permissions' into 'master'"
 99 files changed, 3222 insertions(+), 4898 deletions(-)

При этом в истории появится что-то вроде этого:

commit 268298ce95363a2c0c383c2249d4836617484dc5
Author: Andrey Tataranovich <tataranovich@gmail.com>
Date:   Wed Jul 15 16:17:09 2015 +0300

    Revert "Merge branch 'fix_permissions' into 'master'"
    
    This reverts commit 975a217272bb91fd5cd32cc6ea4ea9af189fbcc2, reversing
    changes made to 0c2c54e1a29576afd760bbdaa7f986f14c2c28cd.

commit 975a217272bb91fd5cd32cc6ea4ea9af189fbcc2
Merge: 0c2c54e 4eb3dd6
Author: John Doe <john.doe@example.com>
Date:   Wed Jul 15 14:15:03 2015 +0300

    Merge branch 'fix_permissions' into 'master'
    
    fix permissions
    
    fix permissions
    update order-notes-and-files
    
    See merge request !12

Осталось запушить изменения на сервер. Более подробную инфу по отмене мержа можно найти тут.

Комментариев нет:

Отправить комментарий