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 470afe15a
將qat
重置回合併前的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
沒有留言:
張貼留言