1 git回退撤销
1.1 未使用 git add 缓存代码回退
- 放弃单个文件修改,使用
git checkout -- filepathname
(例:git checkout -- readme.md) - 放弃所有的文件修改可以使用
git checkout .
命令
此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改,内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有git add到管理系统中。所以对于git是未知的。
1.2 使用git add 缓存了代码回退
- 放弃指定文件缓存
git reset HEAD filepathname
(例: git reset HEAD readme.md) - 放弃所以缓存可以使用
git reset HEAD .
命令
此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了git add之前所示的状态。
1.3 使用 git commit 提交了代码回退
- 使用
git reset --hard HEAD^
来回退到上一次commit的状态。 - 回退到任意版本:
git reset --hard commitid
可以使用git log
命令来查看git的提交历史。git log执行后的每个提交的第一行就是 commitid
1.4 git push 远程后回退
-
git log --pretty=oneline
查看当前提交的日志 -
git reset --soft XXX
XXX是commitID(d6cdbba417....) 回退当前工作空间的上一个版本,并且保留代码更改 -
git log --pretty=oneline
再次查看当前提交的日志,确认是否成功撤销,当然,你也可以不看,基本上都会成功,保险一下,看看呗 -
git push origin master --force
强制提交当前版本号,以达到撤销版本号的目的.必须添加参数force进行强制提交,否则会提交失败,报错原因:本地项目版本号低于远端仓库版本号。(master 代表分支名称,默认是 master,或者也可以直接用git push --force
),执行此报错,去远程端把master的保护分支先停掉,再次执行