GitHub:将一个错误的合并恢复为主,但合并的文件仍然存在

时间:2018-06-06 18:40:18

标签: git github merge revert git-reset

在GitHub中,我意外地将错误的分支合并为主分支。 (可能来自 从下拉列表中选择时,手指滑动)在我意识到错误之前,合并已完成并被推送。

我看过:

Reverting a bad git merge from GitHub

Github: Changes ignored after revert

GitHub revert or reset?

Reverting a git merge commit, then reverting the revert

Github Revert. Unsure about history

但是他们都没有成功地解决这个问题,除非我误解了某些内容,否则他们都表明恢复应该撤消坏合并,让我准备好稍后重新合并适当的分支。

我的结构是这样的:

config.eager_load = true

/master

/dev_2.0

/test_2.0

/dev_3.0

所有分支都从/test_3.0分支出来。每个测试版本/master都会推送到dev_x.0,在每个最终产品发布时,test_x.0都会合并到test_x.0

我们在master分支上有一个标记(称之为test_tag_2.0),它在部署时反映了test_2.0分支。 2.0版已经投入生产并完成,3.0正在开发中。

对我们来说,

test_2.0专门用于已部署的代码,除了我之外,没有其他人接触过。主人不存在后续提交的危险。 /master没有进一步的发展。

我想要做的是将错误合并(test_2.0 - > test_3.0)回滚到合并前它所持有的状态,并执行正确的合并({{1} } - > master

根据有关Stack Overflow的几个主题的建议,我在本地仓库上执行了重置以撤消错误提交,并将其推送到远程。在GitHub中,它显示了历史上的成功还原。 gitk也显示了恢复。

这是我做的命令:

test_2.0

然后推到远程

但是,现在当我将master与不正确的源分支master进行比较时,它显示master是当前的,并且该分支上的所有更改都是当前的。回复不应该撤消吗?

在执行恢复之后,它仍然显示master是正确的分支`git reset --hard HEAD@{1}` 。它不应该也表明情况并非如此吗?

所以我想要的最终结果是test_3.0分支在各种方式上与错误合并之前的方式完全相同,以及从正确的test_2.0分支进行新的合并到master成功。

0 个答案:

没有答案