前面讲了git添加和提交文件,但是如果提交错误,我们怎么回退呢?
1、每次的commit,我们都可以通过命令来查看,使用git log来查看,如果想格式化提交命令,
可以使用参数--pretty=oneline,如下图:
前面一大长串字母数字,是提交时自动生成的commit ID,后面为提交时的备注。
2、我们必须知道当前处于什么版本
在git中,用HEAD来表示当前版本,也就是最新的提交。上一个版本就是HEAD^,上上一个版本就是HEAD^^,再往上就一直在后面加尖括号。当然如果太多,为了美观,我们可以使用HEAD~100.
3、我们要本当前版本回退到上一版,可以使用命令git reset命令。执行完成后查看文件内容:
文件内容变成上一个版本的内容了。
如果我们想回退到特定的版本,只要我们能知道那一版的commig ID,我们就可以直接使用commit ID回退。
比如,刚刚我们已经回到了备注是“add”的这一版,那我们想回到备注是“add hello world”这一版,执行命令:
git reset --hard 5dac916c,如下图
这里在使用commit ID的时候可以不用全部写全,git会自动匹配。但是你也不能写的太少,如果有相同的,git无法分辨。
到这里,git回退的方法都说完了,但是会有人问了, 如果我没有记住回退之前的版本的commit ID怎么办?这也有办法。git提供了使用git reflog来查询每一次提交的命令。
如上图,我们看到备注为“add hello world”的commit ID为5dac916
总结:
1、回退到上一版本:git reset --hard HEAD^
2、回退到某一个版本:git reset --hard commitID
上面两种都是撤销本地提交,如果要撤销远程仓库中版本:
先撤销本地分支的版本,本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支。