正确还原提交给源的git合并
我的分会历史如下: 现在我想恢复与分支558的合并。我有sha代码,所以我在做:正确还原提交给源的git合并,git,git-revert,Git,Git Revert,我的分会历史如下: 现在我想恢复与分支558的合并。我有sha代码,所以我在做: git还原-m 1 1784adf300f43fb76391e92f80be01132eddb680 结果是: [master d51e2b3]还原“合并分支'558'” 1个文件更改,15个插入(+),29个删除(-) 此时,当我尝试将恢复推回到原点时,我看到只有来自合并558分支的最后一次提交被恢复(以及在合并中有多个文件受到影响)。如何还原合并分支中的所有提交,或者我在这里做了其他错误。您可以使用git r
git还原-m 1 1784adf300f43fb76391e92f80be01132eddb680
结果是:
[master d51e2b3]还原“合并分支'558'”
1个文件更改,15个插入(+),29个删除(-)
此时,当我尝试将恢复推回到原点时,我看到只有来自合并
558
分支的最后一次提交被恢复(以及在合并中有多个文件受到影响)。如何还原合并分支中的所有提交,或者我在这里做了其他错误。您可以使用git revert指定多个提交、提交间隔。在这里,您需要找到分支558中的第一个提交,该分支与主分支分离,并在两个分支合并之前进行提交
然后,您可以使用:
git revert -n {first_commit}..{last_commit}
在这里,-n
选项不允许对每个恢复的提交都进行提交,它只会对更改进行阶段性处理,您可以在之后提交相应的描述
如果您的历史记录很简单,如您的示例中所示,那么它应该会起作用
更正和澄清:git不会直接接受合并提交或包含合并进行还原的间隔。但是,可以仅使用合并提交和选项-mi
来还原整个分支,其中i表示要还原合并的哪一侧(从1开始,因此这里是2)
整个问题相当微妙,是一个有用的读物。但是-m参数呢?现在我得到:MacBook-$git revert-n first\u commit merge\u commit-m 1 fatal:Mainline已指定,但commit first\u commit不是合并。
@mike\u hornbeck抱歉,我的研究有点马虎。我做了一个更正并添加了一些细节。是的,文档也不是很清楚你应该做什么以及这个-m真正做什么。谢谢重复-?不是重复,因为它涉及合并