2012-04-23 59 views
1

我已经从github克隆了一些项目,到我的项目,所有的作品都很好,我很高兴。Git回滚到之前的结账

但在一些git pulls后,我收到了一些与上游项目的新提交有关的项目冲突。

我想回滚到之前的结帐,但我不知道我的项目中以前有哪个稳定结帐。

我如何知道它并回滚到以前的稳定(对我来说)项目结账?我明白,从视角来看,更正确的方法可以解决与上游回购问题的冲突,但有时我只需要回滚到以前的版本,以获得解决问题的时间。

+0

如果您知道如何结帐以前的版本,我不清楚这一点吗?如果没有看到http://stackoverflow.com/q/1223354/11343。 – CharlesB 2012-04-23 07:08:28

回答

2

如果您有一个可以执行的命令/脚本,并且可以说明一个“稳定点”(即正在工作,与当前不工作的状态相反),那么您可以考虑命令/命令。
请参阅“How to use git bisect?”。

这将帮助你隔离“它正在工作”的最后一次提交。

+0

+1,但对于Git的新手用户可能有点高级? – CharlesB 2012-04-23 07:09:20

+0

由于最近有一个已知点,所以看起来似乎有点过分。 – Ashe 2012-04-23 07:09:58

+0

@CharlesB当然,因此链接解释如何使用它。无论如何,如果提交是相当新的,其他答案似乎更合适。 – VonC 2012-04-23 07:12:13

0

你已经承诺合并?如果不是,只需git reset --hard,并且您在发布git pull之前又回到了州。否则,git reset --hard HEAD^(如果合并是最后一次提交)会诀窍,因为默认情况下git会始终选择合并提交的第一个父级,这是您的分支。如果有疑问,您可以随时使用gitk检查情况并找到您的分支上的最后一个提交,复制它的SHA1哈希并恢复到那个。

1

git reflog应该告诉你操作的顺序,最近的第一个。查找在第一次拉/合之前操作的提交ID; checkoutreset --hard