Git:如何将所有内容完全恢复到先前提交的状态?

时间:2010-03-08 04:42:18

标签: git revert

如果自早期提交以来有过提交和许多更改,是否有一种简单的方法可以将所有内容恢复到之前提交的确切状态?

如果是这样,如果我也愿意,是否可以轻松切换回当前状态?

我已经意识到这个旧提交实际上是正确的,并且希望从那时起维护所有更改仅供参考,但所有未来的工作都将基于这个旧提交。

3 个答案:

答案 0 :(得分:6)

听起来你想把你现在的工作放在一个分支上:

git branch saved_work
git reset --hard previouscommit

现在,您的saved_work分支包含 previouscommit之后的所有,而master将重新合并到previouscommit

答案 1 :(得分:2)

由于您想要返回早期状态:

git stash
git checkout -b new_branch <tree-ish>

以上将保存您未提交的更改,并允许您在特定提交时创建新分支。按照您的意愿工作,稍后当您想要更改为早期状态时:

git stash
git checkout earlier_branch

答案 2 :(得分:1)

提交您当前的更改:

git commit

然后检查旧提交:

git checkout yourcommit

添加-f选项将破坏任何本地更改。