如果我们在我们的工作区写了很长时间代码,发现出现错误,想回退到之前的版本,这时改怎么做呢?
情况一:对于工作区的代码,还没有 add
我们当然也可以使用git diff 查看与上次提交的差异,进行手动删除。但是git 给我提供了更好的选择,比如使用 git checkout -- XXXX 这样就能在工作区回到上次提交的版本的代码了。
“--” 很重要,切记不要省略,⼀旦省略,该命令就变为其他意思了
情况二:已经 add ,但没有 commit
git reset 回退命令,该命令如果使用 --mixed 参数,可以将暂存区的内容退回为指定的版本内容,但⼯作区文件保持不变。那我们就可以回退下暂存区的内容了!!!
使用git reset 完命令后就和情况一类似了
git reset HEAD 指的是将暂存区内容回退至 当前版本(本地仓库的最新版本就是当前版本)
情况三:已经 add ,并且也 commit 了
不要担心,我们可以 git reset --hard HEAD^ 回退到上一个版本!不过,这是有条件的,就是
你还没有把自己的本地版本库推送到远程。还记得Git是分布式版本控制系统吗?⼀旦你推送到远程版本库,你就真的惨了……
删除文件
在 Git 中,删除也是⼀个修改操作,我们实战⼀下, 如果要删除 readme 和 readme1 文件,怎么搞呢?如果你这样做了
直接rm 删除了,然后需要使用 add commit 来提交。add(因为git 对增删查改进行管理,所以删除也能提交)
查看状态:
使用git 给我们提供的删除命令:
注意:直接 rm 与 git rm 的区别在于,rm只删除了工作区的内容,而git rm 不仅将工作区里面的内容删除,并且也将暂存区里面的内容删除了,所以只需要进行commit 操作。