0

这个问题已经问了太多次了,但我没有找到解决我的情况的方法,所以会再问一次。我有 2 个分支机构 - 主人和居民。我已经在居民身上工作了大约 2 个月,基本上是对表单的完全重新设计(大量的复选框、单选按钮等以避免打字)。大约 35 次提交。几次左右,我对主人做了一些小的改动,并将主人合并到居民中。然后当我对居民感到满意时,我切换到master,将居民合并到其中并推送到heroku。

该应用程序(实际上是包含一些 JS 的表单)在 heroku 上不起作用(它在我的本地上起作用)。我回滚了heroku,现在我需要将应用程序恢复到合并和推送之前的状态。我有居民分支,所以我只需要从主服务器中丢弃整个合并。

我认为这应该是一个简单的撤消,但我不知道如何。

感谢帮助。

4

2 回答 2

0

我认为您可以重置合并然后再次推送。

git reset --merge:重置索引并更新工作树中与 HEAD 不同的文件,但保留索引和工作树之间不同的文件(即有更改但尚未添加的文件)。如果与索引不同的文件具有未暂存的更改,则中止重置。

http://git-scm.com/docs/git-reset

于 2012-11-20T06:47:59.003 回答
0

假设 master 中的最新提交是您的常驻分支的合并,并且您没有与其他人共享您的应用程序,您可以执行以下操作:

git reset --hard HEAD~1

该命令说回滚到前一个父级。然后你需要做:

git push --force

您也可以使用它git revert来执行此操作,但这也带来了一些额外的复杂性。您将不得不恢复合并提交,稍后,当您想要恢复分支时,您将恢复您的恢复,然后合并分支。否则,所有的修订都不会过来。在这种情况下,我赞成修改历史记录,这就是我在上面向您展示的内容,因为当您可以使用它时,它会更简单、更干净。

于 2012-11-20T09:30:29.473 回答