回退到过去版本与恢复到新版本
版本: 每一次commit创建一个新的版本
HEAD: 指向当前版本
git reset –hard HEAD^ : 回退到上一个版本
git log : 查看提交历史,以便确定要回退到哪个版本
git reset –hard HEAD~5 : 回退到前5个版本
git reflog : 查看命令历史,找到新版本的 commit id,
git reset –hard 3628163(:版本号),回到新版本
工作区和暂存区
工作区:仓库目录
版本库:.git
版本库包含暂存区与分支
git add :
git commit :
提交之后,工作区又没有进行修改,工作区就是干净的。
撤销修改
撤销工作区中的修改
git checkout – readme.txt :把readme.txt在工作区的修改全部撤销
1.readme.txt修改后没有放到暂存区,将回到和版本库一样的状态
2.readme.txt添加到暂存区后又做了修改,将回到添加到暂存区后的状态。
撤销暂存区中的修改
git reset HEAD readme.txt : 把暂存区的修改撤销掉,重新放回工作区
用git status 查看,暂存区是干净的,工作区有修改。
撤销版本库中的修改
1.没有把本地版本库推送到远程:
版本回退
2.推到了远程但别人还没有拉下来
本地回退到相应版本
此时本地版本落后于远程版本
git push roigin master –force :强制覆盖掉远程版本(存疑)
3.推到了远程并且别人已经拉取。
暂时我没找到什么好方法,总之一句话,推送远程的时候一定要慎重,一定要推送编译无误,确定正确的东西。
参考资料
Git教程 廖雪峰 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
侵删
另:图片也是从那拿来的。