網頁

2023/4/25

Git 復原/撤銷合併 undo merge commit

Git撤銷合併提交(merge commit)可使用git reset --hard <before-merge-commit-hash><before-merge-commit-hash>為合併前的commit。


例如下面qat分支合併dev分支的merge commit為a2e9d9ff9

~% git log --all --graph --decorate --oneline
*   a2e9d9ff9 (HEAD -> qat) Merge branch 'dev' into qat
|\
* | 470afe15a fix <-- before-merge-commit-hash
| * a46061491 (dev) feature-2
| * 0de32f6bb feature-1
|/ 
* fa156e5fd init

若要取消這個合併,則在qat分支輸入git reset --hard 470afe15aqat重置回合併前的commit位置470afe15a

~% git reset --hard 470afe15a
HEAD is now at 470afe15a fix

合併取消後qat分支已回到merge commit前的commit點470afe15a

~% git log --all --graph --decorate --oneline
*  470afe15a (HEAD -> qat) fix
| * a46061491 (dev) feature-2
| * 0de32f6bb feature-1
|/
* fa156e5fd init

通常取消合併是回到merge commit的前一個commit,所以也可輸入git reset --hard HEAD^回復。

~% git reset --hard HEAD^
HEAD is now at 470afe15a fix


沒有留言:

張貼留言