git撤回一个merge提交
git撤回一个merge提交的时候, git revert [commit-id] 有时提示如下错误
fatal: Commit
git 撤销一个merge操作的提交时,会拒绝,并提示如上的错误提示。 因为merge操作是将revisionA merge revisionB, 如果我们revert这个合并操作, 那么我们将当前的版本是恢复到 revisionA 还是 revisionB呢? 这里有歧义,所以git是不允许操作,需要提供-m 参数。
-m的参数含义是,指定我们要撤回后回到merge提交的父版本?
#d636d92037f7c0e12b7c0b798837dafe5037818e 是我们要撤销的某个提交id。
$git cat-file -p d636d92037f7c0e12b7c0b798837dafe5037818e
tree cc10a8c72d0af9ea545a0a68d6d47814e9f7fdf8
parent 2042d9ae223635ea26fb99579b7461e984e3d8cd #如果我们要回到此parent版本,则-m 1
parent fb05c12ba11962421a6be93cf6fcfc4b7758302b #如果我们要回到此parent版本, 则-m 2
author unknown
committer unknown
encoding GB2312
Merge branch 'master' of http://x.x.x.x:port/scm/ibg/ibg_test
#假设我们要回到fb05c12ba11962421a6be93cf6fcfc4b7758302b 此版本。
$git revert d636d92037f7c0e12b7c0b798837dafe5037818e -m 2
[master 67ca87f] Revert "Merge branch 'master' of http://x.x.x.x:port/scm/ibg/ibg_test"
2 files changed, 1 insertion(+), 10243 deletions(-)
此篇文章已被阅读1177 次