将merged提交回旧分支,恢复master并保持更改

时间:2015-04-22 19:26:13

标签: git merge branch

我将一些提交合并到master,但现在我需要在新分支上进行这些更改,master恢复到合并前的状态。

以下是提交历史记录的内容:

以下是我希望它的样子:

2 个答案:

答案 0 :(得分:1)

我没有看到差异,但相信我理解这个问题,这是我以前做过的事情。

1)创建新分支:假设master是当前分支,创建新分支

c:\git\project> git branch my_new_branch

2)重置主分支。让我们假设您需要退出的最后4次提交。

C:\ git的\项目> git reset --hard HEAD~4

3)处理新分支

C:\ git的\项目> git checkout my_new_branch

--hard导致索引重置为您要保留的第一个提交,并且所有修改都将丢失。

一些警告: - 如果您已将主控更改推送到遥控器,则不会影响遥控器。至少在我的网站上,我无法推动重置,你必须与遥控器的所有者(或git管理员)一起做类似的事情。 -The --hard还应该清理未跟踪的文件,至少我读过的文档是这样说的,但我不相信它总会发生。

答案 1 :(得分:0)

如果在合并之后没有提交,则可以在合并之前将master重置为commit,并继续处理前一个分支(假设它只是合并而不是删除)。

如果您在合并后提交,则必须创建分支,然后还原合并。