如果自早期提交以来有许多更改,是否有一种简单的方法将所有内容还原为早期提交的确切状态?
如果可以,是否可以轻松地切换回当前状态(如果我需要的话)?
我意识到这个旧提交实际上是正确的,并希望保留自那时以来的所有更改仅供参考,但所有未来的工作都将基于这个旧提交。
听起来您想将当前工作放在一个分支上:
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 选项将会销毁任何本地更改。