Git: 还原合并错误
Git: revert merge error
我最近使用 git 将一个本地功能分支合并到我的本地 master 分支。然后我做了一些更改并提交到 master 分支。现在,我想摆脱 master 分支上合并引起的更改。所以我做了一个:
git revert <commit-id>
但是,我得到了错误
error: Commit c49aaca4acf461cc41390c1d1d3477f09e25a368 is a merge but
no -m option was given. fatal: revert failed
仅供参考,我没有向服务器推送任何内容。我在网上搜索,但找不到合适的解决方案。有谁知道该怎么做?谢谢
在 Git 中,一个提交通常只引用 1 个父提交。
但是,如果您 merge
遇到冲突,如果您 merge
使用 --no-ff
选项(没有快进)或者如果 Git 不能 fast-forward, Git 创建一个 merge commit
.
A merge commit 是专用于 link 两个分支的提交,它引用作为分支尖端的 2 个提交(在本例中为 2 个父级)。
当你想恢复这种类型的提交时,你需要指定剩下的分支应该是哪个分支。如 Git doc 所述:
Reverting a merge commit declares that you will never want the tree
changes brought in by the merge
您必须使用带有父编号的选项 -m
(--mainline
) 进行还原。
您合并的分支号为1,合并后的分支号为2.
在您的情况下,要返回到合并功能分支之前的 master
分支的状态,您应该使用命令恢复
git revert c49aaca4acf461cc41390c1d1d3477f09e25a368 -m 1
提示:在启动 revert
之前,从您的 master
创建一个新分支(假设您当前在上面)
git checkout -b you-name-it
并在这个新分支上执行 revert
:如果它有预期的结果,checkout
再次你的 master
分支并执行 revert
,如果它没有' 你的 master
分支仍然完好无损。
我最近使用 git 将一个本地功能分支合并到我的本地 master 分支。然后我做了一些更改并提交到 master 分支。现在,我想摆脱 master 分支上合并引起的更改。所以我做了一个:
git revert <commit-id>
但是,我得到了错误
error: Commit c49aaca4acf461cc41390c1d1d3477f09e25a368 is a merge but no -m option was given. fatal: revert failed
仅供参考,我没有向服务器推送任何内容。我在网上搜索,但找不到合适的解决方案。有谁知道该怎么做?谢谢
在 Git 中,一个提交通常只引用 1 个父提交。
但是,如果您 merge
遇到冲突,如果您 merge
使用 --no-ff
选项(没有快进)或者如果 Git 不能 fast-forward, Git 创建一个 merge commit
.
A merge commit 是专用于 link 两个分支的提交,它引用作为分支尖端的 2 个提交(在本例中为 2 个父级)。
当你想恢复这种类型的提交时,你需要指定剩下的分支应该是哪个分支。如 Git doc 所述:
Reverting a merge commit declares that you will never want the tree changes brought in by the merge
您必须使用带有父编号的选项 -m
(--mainline
) 进行还原。
您合并的分支号为1,合并后的分支号为2.
在您的情况下,要返回到合并功能分支之前的 master
分支的状态,您应该使用命令恢复
git revert c49aaca4acf461cc41390c1d1d3477f09e25a368 -m 1
提示:在启动 revert
之前,从您的 master
创建一个新分支(假设您当前在上面)
git checkout -b you-name-it
并在这个新分支上执行 revert
:如果它有预期的结果,checkout
再次你的 master
分支并执行 revert
,如果它没有' 你的 master
分支仍然完好无损。