如果自较早提交以来已提交并进行了许多更改,是否有一种简单的方法可以将所有内容恢复到较早提交的确切状态?
如果是这样,如果我也希望如此,是否可以轻松切换回当前状态?
我已经意识到这个旧的提交实际上是正确的,并且希望保持从那时起的所有更改仅供参考,但所有未来的工作都将基于这个旧的提交。
听起来你想把你当前的工作放在一个分支上:
git branch saved_work
git reset --hard previouscommit
现在,您的saved_work
分支包含之后 previouscommit
的所有内容,并被master
倒回到previouscommit
.
既然你想回到之前的状态:
git stash
git checkout -b new_branch <tree-ish>
以上将保存您未提交的更改,并允许您在特定提交时创建新分支。随心所欲地工作,稍后当您想更改为较早的状态时:
git stash
git checkout earlier_branch
提交您当前的更改:
git commit
然后签出旧的提交:
git checkout yourcommit
添加 -f 选项将破坏任何本地更改。