如何回到之前的状态...(回滚到先前的提交)Git初学者

4

我的最后几个命令是:

git rebase -i HEAD^^

git rebase -i HEAD^^

git rebase -i HEAD^^^

我该如何将存储库恢复到列出命令之前的状态?

注意:到目前为止,我所做的一切都是 git commit -am“我的提交消息”。我还不了解分支和合并,因此没有使用它们。我试图将代码回滚到上一个提交,但似乎没有任何作用。


只是一个警告:git rebase 可能会非常破坏性,特别是如果你正在从共享存储库中工作。学习它的工作原理是个好主意,但在“真实世界”中使用时要小心 :) - rayhem
1个回答

8
如果您运行的确切命令是这些,那么git reset --hard HEAD@{3}将使您回到3个命令之前的HEAD。更一般地,查看git reflog的输出以确定要恢复的引用,然后使用git reset进行恢复。

1
不一定 - 在交互式变基期间,HEAD 可能会被更新多次。不过 git reset --hard <branch>@{3} 可以工作 - 假设所有的变基都实际做了些什么。如果没有,那就太远了。我建议查看 git reflog show <branch> 确保你得到想要的。 - Cascabel
git checkout <file>会达到相同的效果吗?还是只有在执行rebase之前才有效? - rayhem
git checkout <file> 从索引中获取 <file> 的版本并将其放置在工作树中。它只影响工作树中的那个文件。它与移动 HEAD 没有任何关系。 - Cascabel
啊哈,我原先认为楼主想要做另一件事情,但现在更明白了。谢谢! - rayhem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接