这条命令用于回滚到之前的某个版本,比如,刚检出的代码仓库包含了从初始版本到最新版本的全部提交:
# git log --pretty=oneline commit-hashN 最新版本 ... commit-hash2 版本2 commit-hash1 版本1
这里的所有版本信息都是保存在本地.git文件夹中的,你可以从中检出任何一个版本,不管怎么操作,本地.git文件夹都包含了全部的版本信息,可以方便地进行恢复。但如果使用了 git reset 命令,则会把当前仓库回滚到之前的某个版本,并且本地.git文件夹只记录到这个版本的信息,之后的版本都被删除,这可以通过 git reset --hard 命令来实现,如下:
git reset
git reset --hard
git reset --hard commit-hash2
这里执行完这条命令之后,仓库会被强制回滚到版本2,如下:
# git log --pretty=oneline commit-hash2 版本2 commit-hash1 版本1
并且,使用 git status 查看仓库状态,会提示当前仓库的版本落后远程仓库。
git status
git reset 的较常见用处是 git reset --hard HEAD ,这条命令会强制将当前仓库回滚到最近一次提交,也就是把当前的修改全部忽略掉,把工作空间还原为初始状态。
git reset --hard HEAD
git reset 用于将仓库回滚到某一个版本,回滚之后的.git文件夹就不会有之后版本的记录了,如果要重新恢复到最新版本,那么要进行 git pull 操作。
git pull