git的使用总结(二)【代码版本回退】
1)在工作区(没有进行git add操作)
#恢复到最后一次提交的状态
git restore -- filepathname
2)在暂存区(git add之后包含git commit操作 push操作之前)
#一、git restore 可以还原特定文件的暂存或工作区的状态,不更改提交历史
#1)从最新的提交中恢复 <file> 的工作区内容,撤销未提交的更改,但不影响暂存区。
git restore <file>:
#2)取消 <file> 在暂存区的更改,但保留工作区中的修改。
git restore --staged <file>:
#3)从指定的 <commit> 中恢复 <file>,还可以结合 --staged 选项来恢复暂存区的状态。
git restore --source <commit> <file>:
#二、git reset可以修改提交历史、撤销暂存、或重置工作区
#1)仅将 HEAD 重置到 <commit>,但保留暂存区和工作区的更改。适合想修改最近的提交,但不想丢失已经暂存的更改。
git reset --soft <commit>:
#2)将 HEAD 重置到 <commit>,同时清空暂存区,但保留工作区中的更改。适合想取消已经 git add 的更改,保留修改供后续操作。【不加参数,默认为这种效果】
git reset --mixed <commit> (默认):
#3)将 HEAD、暂存区和工作区都重置到 <commit> 的状态,丢弃所有未提交的更改。适合想完全抛弃所有本地更改,恢复到指定提交的状态。
git reset --hard <commit>:
#case:将代码库重置到上一个提交,丢弃所有更改
git reset --hard HEAD~1
备注:如何查看commit的版本,可以通过git log寻找需要切换版本使用id进行指定