Git回滚到之前的结帐
我从github克隆了一些项目,到我的项目,所有的作品都很好,我很高兴。
但是在一些git pulls之后,我在我的项目中收到了上游项目的新提交中的一些冲突。
我想要回滚到之前的结帐,但我不知道我的项目中以前有哪个稳定的结帐。
我如何知道它并回滚到以前的稳定(对我来说)项目结账? 我明白,从视角来看,更正确的方法可以解决与上游回购问题的冲突,但有时我只需要回滚到以前的版本,以获得解决问题的时间。
如果你有一个可以执行的命令/脚本,并且可以说明一个“稳定点”(即可以工作,而不是当前状态),那么你可以考虑一个git bisect
命令。
请参阅“如何使用git bisect?”。
这可以帮助你隔离“正在工作”的最后一次提交。
git reflog
应该告诉你操作的顺序,最近的第一个。 查找在第一次拉/合之前操作的提交ID; checkout
或reset --hard
很难。
你已经承诺合并? 如果没有,只需将git reset --hard
,然后在发出git pull
之前回到状态。 否则, git reset --hard HEAD^
(如果合并是最后一次提交)会执行这个技巧,因为默认情况下git会始终选择合并提交的第一个父代,这是您的分支。 如果有疑问,你总是可以使用例如gitk
来检查情况并找到你的分支上的最后一个提交,复制它的SHA1哈希并恢复到那个。