撤销修改和版本回退
由于一直分不请楚如何工作区的修改(没有add)、暂存区的修改(已add未commit),已提交的修改(已commit)所以参考了大佬的博客抽时间做了一个整理。
工作区、暂存区、版本库
工作区就是我们平常代码存放的git初始化的目录。版本库就是目录里的隐藏文件 .git
而版本库中的stage就是暂存区 git add “file”提交到暂存区
git commit 把暂存区的修改提交到当前分支中
撤销工作区的修改
git checkout – file 撤销工作区中的修改 (没有add到暂存取的修改)
撤销暂存区的修改
git reset HEAD file 把暂存区的修改撤销 重新放回工作区 (已add未commit)
当我们reset之后 暂存区的修改回到了工作区。在使用git checkout – file撤销工作区的修改即可。
撤销已提交的修改
撤销已经commit的修改 但是没有push到远程
1第一种方法 (适合撤销到历史某个版本)
git log 查看要回退的版本的commitID
git reset --hard commitID
2 第二种方法 (回退到之前的版本)
git reset --hard HEAD^
在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD ^ ^
总结:
撤销工作区的修改 使用checkout --flie
撤销暂存区的修改 使用 reset HEAD file
撤销已提交的修改 reset --hard commitId 或者 reset --hard HEAD^ commitid是在commit的时候git库生成的,所以只有已经commit过的修改才可以使用id来撤销。