5

如果自较早提交以来已提交并进行了许多更改,是否有一种简单的方法可以将所有内容恢复到较早提交的确切状态?

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

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

4

3 回答 3

6

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

git branch saved_work
git reset --hard previouscommit

现在,您的saved_work分支包含之后 previouscommit的所有内容,并被master倒回到previouscommit.

于 2010-03-08T05:02:47.670 回答
2

既然你想回到之前的状态:

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

以上将保存您未提交的更改,并允许您在特定提交时创建新分支。随心所欲地工作,稍后当您想更改为较早的状态时:

git stash
git checkout earlier_branch
于 2010-03-08T04:48:45.750 回答
1

提交您当前的更改:

git commit

然后签出旧的提交:

git checkout yourcommit

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

于 2010-03-08T04:44:59.353 回答