我最近使用git合并了本地主分支。然后,我进行了一些更改,并提交了主分支。现在,我想摆脱由我的主人分支合并造成的变化。所以我做了:
git revert <commit-id>
但是,我有错误
错误:提交C49AACA4ACF461CC41390C1D1D1D3477F09E25A368是合并 没有给出-m选项。致命:恢复失败
fyi,我没有向服务器推任何东西。我在网上搜索,但找不到一个不错的解决方案。有人知道该怎么做吗?谢谢。
在git中,提交通常只引用1个父犯罪。
但是,如果您 merge
并遇到冲突,如果您使用选项--no-ff
(无快速前进),或者如果Git无法快速向前,则GIT创建merge commit
。
合并提交是一项致力于链接两个分支的提交,通过引用两个分支的提交(在这种情况下为2个父母)。
。当您想恢复这种类型的提交时,您需要指定哪个分支应该是其余的分支。如git doc中所述:
恢复合并订单声明您永远不会想要树 合并带来的更改
您必须使用带有父号码的选项-m
(--mainline
)恢复。您合并的分支数为 1 ,合并分支的数字为 2 。
在您的情况下,要在合并分支合并之前返回master
分支的状态,您应该使用命令
git revert c49aaca4acf461cc41390c1d1d3477f09e25a368 -m 1
提示:在启动revert
之前,请从您的master
创建一个新分支(假设您当前在其中)
git checkout -b you-name-it
并在此新分支上执行revert
:如果它具有预期的结果,请再次使用checkout
您的master
分支并执行revert
,如果没有CC_13,则您仍然使master
分支完整。