这条命令用于回滚到之前的某个版本,比如,刚检出的代码仓库包含了从初始版本到最新版本的全部提交:

# git log --pretty=oneline
commit-hashN 最新版本 
...
commit-hash2 版本2
commit-hash1 版本1


这里的所有版本信息都是保存在本地.git文件夹中的,你可以从中检出任何一个版本,不管怎么操作,本地.git文件夹都包含了全部的版本信息,可以方便地进行恢复。但如果使用了 git reset 命令,则会把当前仓库回滚到之前的某个版本,并且本地.git文件夹只记录到这个版本的信息,之后的版本都被删除,这可以通过 git reset --hard 命令来实现,如下:

git reset --hard commit-hash2


这里执行完这条命令之后,仓库会被强制回滚到版本2,如下:

# git log --pretty=oneline
commit-hash2 版本2
commit-hash1 版本1


并且,使用 git status 查看仓库状态,会提示当前仓库的版本落后远程仓库。


git reset 的较常见用处是 git reset --hard HEAD ,这条命令会强制将当前仓库回滚到最近一次提交,也就是把当前的修改全部忽略掉,把工作空间还原为初始状态。

总结


git reset 用于将仓库回滚到某一个版本,回滚之后的.git文件夹就不会有之后版本的记录了,如果要重新恢复到最新版本,那么要进行 git pull 操作。

  • 无标签