在合并分支之前恢复到特定状态

时间:2015-08-18 11:47:36

标签: git github merge revert git-revert

git overlords,听我的请求:

我有一个git分支,称之为“master”(原创,我知道)。现在,我也在另外两个分支机构工作,同时称他们为“该死”和“错误”。当我完成后,两个分支都合并为“主”,然后合并到生产。

问题是,我怀疑在这些分支中做出的一些更改是有害的(为什么我认为这是无关紧要的),所以我想恢复到我开始在分支机构工作之间的某个特定提交(“错误”因此,我说8月1日我开始研究他们并于8月10日合并,我想回到8月3日。 但是,似乎如果我回到8月3日,那个日期之前在分支机构上提交的提交仍然是我的“主人”。

我可以使用某种'git revert'魔法来实现这一目标吗?一些我不知道的git命令?

也许git rev-list --parents -n 1 <commit>有些变化?那不是我想要的,然后再说我不能称自己为git专家。

我不可能是唯一一个遇到过这个问题的人(虽然搜索SO可能会给人留下这样的印象)。

帮助?

1 个答案:

答案 0 :(得分:0)

  

然而,似乎如果我回到8月3日,那个日期之前在分支机构上提交的提交仍然会出现在我的&#34; master&#34;。

这是预期的行为。 git revert不会重置&#39;一些提交它基本上采取你还原的提交的负面快照并创建一个新的提交。

如果你真的想摆脱错误的git合并。你必须做git reset。但要注意! git reset是一个重写历史记录的命令。因此,如果您的历史是公共历史记录,并且在推送重写历史记录之后,您将遇到多个参与者。如果没有,你可以放心地做一个

git reset --hard <commitIDOfTheComitFrom3rdAugust>

然后你修好了所有的东西

git push --force origin <whatever>