1

我已经将一些项目从 github 克隆到我的项目中,一切正常,我很高兴。

但是在一些 git pull 之后,我的项目与上游项目的新提交发生了一些冲突。

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

我如何知道它并回滚到以前稳定的(对我而言)项目结帐?我理解从长远来看更正确的方法来解决我与上游仓库的冲突,但有时我只需要回滚到以前的版本,以获得解决问题的时间。

4

3 回答 3

2

如果您有一个可以执行的命令/脚本,并且可以说明一个“稳定点”(即某些工作,而不是当前不工作的状态),那么您可以考虑一个git bisect命令。
请参阅“如何使用 git bisect? ”。

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

于 2012-04-23T06:59:44.190 回答
1

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

于 2012-04-23T07:09:20.500 回答
0

您是否已经提交了合并?如果没有,就git reset --hard和你回到你发出之前的状态git pull。否则,git reset --hard HEAD^(如果合并是最后一次提交)可以解决问题,因为 git 默认情况下总是选择合并提交的第一个父级,即您的分支。如果有疑问,您可以随时使用 eggitk来检查情况并找到分支上的最后一次提交,复制其 SHA1 哈希并恢复为该状态。

于 2012-04-23T07:04:38.213 回答