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

5

如果自早期提交以来有许多更改,是否有一种简单的方法将所有内容还原为早期提交的确切状态?

如果可以,是否可以轻松地切换回当前状态(如果我需要的话)?

我意识到这个旧提交实际上是正确的,并希望保留自那时以来的所有更改仅供参考,但所有未来的工作都将基于这个旧提交。

3个回答

6

听起来您想将当前工作放在一个分支上:

git branch saved_work
git reset --hard previouscommit

现在,你的saved_work分支包含了previouscommit之后的所有内容,而master则被重置为previouscommit

2

由于您想返回之前的状态:

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

以上操作可以保存您未提交的更改并允许您在特定提交上创建新分支。随心所欲地工作,以后如果希望返回先前的状态:

git stash
git checkout earlier_branch

我该如何将已检出的分支设置为主分支?我意识到这个旧的提交实际上是正确的,想保留此后所有更改仅供参考,但所有未来的工作都将基于这个旧的提交。 - William Jones

1

提交您当前的更改:

git commit

然后检出旧的提交:

git checkout yourcommit

添加 -f 选项将会销毁任何本地更改。


警告:假设 'yourcommit' 是一个 SHA,使用“checkout”将进入“分离头”模式 - 不会在任何分支上工作 - Luke Usherwood

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