git 回退

image.png

执行git staus 命令
Modified 表示已修改未暂存
Unmodified 表示已提交到本地仓库
Staged 表示已经暂存
Untracked 表示未被跟踪,新生成的文件

解决方案:

(一)reset

1、不删除工作空间的改动代码 ,撤销commit,两者都保留commit前代码做的修改

git reset --soft HEAD^  //回到前一次提交的commit执行之前的状态
git reset --mixed HEAD~  //回到前一次提交的add执行之前的状态

2、删除工作空间的改动代码,撤销commit且撤销add,代码回到上一次提交的状态

git reset --hard HEAD^

3、如果commit注释写错了,先要改一下注释

git commit --amend

这时候会进入vim编辑器,修改完成你要的注释后保存即可。
命令 HEAD^ :
HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1
如果进行两次的commit,想要都撤回,可以使用HEAD~2

4、如果已经commit一次,但发现还有未commit 的代码,但又不想有两条commit语句

git commit --amend --no-edit

命令连接符 && 的意思是: 前一条命令执行成功才执行后一条命令。
扩展命令连接符 ;; 的意思是:不论前一条是否执行成功都继续执行后一条命令。

(二)revert
git revert <commit-id>

使用revert不会破坏历史记录,只是提交一个新的修改使修改后代码和以前一致。

实质上相当于用前的代码merge 后的代码,因此如果后面对代码文件做了修改需要解决冲突。
revert的主要麻烦:如果存在分支合并的情况,如下,从m1 revert到a2时会添加一个新的提交m2,当m2与b2 merge时会显示已经merge过.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容