git commit回退三种姿势

git commit 回退

弄清楚三个区

  • 工作区(working tree): 本地编辑器
  • 暂存区(index):git add操作后进入暂存区,可用git status查看
  • 本地仓库(repository):git commit 后进入本地仓库

修改commit

当我们第一次提交后,发现还有修改没有提交,通常我们想的是在add/commit一次,这样存在的问题呢就是会有一些扰乱我们的commit信息。比如我们第二次commit提交信息可能是“删除上次提交的debugger”
其实我们两次提交内容的目的都是同一个,比如修改bug,第一次提交时忘了删除我们调试时留下的debugger。然后就删除提交第二次,第二次的提示信息就很不友好。我们怎么来将两个commit合为一个呢?

  • git commit --amend // 把上一次的commit记录去除,修改commit信息。
git commit --amend

第一次提交,查看提交日志已经存在:
第一次提交,查看提交日志已经存在
第二次add,然后提交修改
在这里插入图片描述
进入编辑界面,修改我们的提交信息
在这里插入图片描述
修改后
在这里插入图片描述
查看提交日志,只存在一次提交记录,信息也是显示的我们第二次提交的信息。
在这里插入图片描述

回退commit

  • git reset --soft // 回退到指定commit,该commit之后的提交内容,保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区
  • git reset --hard // 回退到指定commit,该commit之后的提交内容,工作区和暂存区的内容都被抹掉
  • git reset 或 git reset --mixed // 不带参数,或带参数–mixed(默认参数),与git reset --soft 不同,它将会把差异放到工作区
git reset --soft

首先我们先提交两次记录,这是第一次:
在这里插入图片描述
第二次:
在这里插入图片描述
查看提交HEAD
在这里插入图片描述
此时工作区没有任何修改未提交
在这里插入图片描述
git reset --soft HEAD^之后, 工作区有修改未提交,最后一次提交的内容暂存区保存了下来
在这里插入图片描述
提交记录以及不在,说明仓库中没有了这次提交
在这里插入图片描述
我们git status 发现上次提交的内容在暂存区,想要再次提交我们再继续commit就行
在这里插入图片描述

git reset --hard

首先我们提交,查看提交记录
在这里插入图片描述
git reset --hard 1134cb6回退到版本1134cb6(git reflog 可查询HEAD)
在这里插入图片描述
没有了txt文件,内容被彻底的删除了。
在这里插入图片描述

也没有了提交记录,工作区也没有代码。这时候工作区,暂存区和仓库都是一样的回退到了指定commit
在这里插入图片描述

git reset HEAD || git reset --mixed

添加commit
在这里插入图片描述
回退,查看状态,前一次提交目前在工作区
在这里插入图片描述

小结

  • git commit --amend 好用,减少提交无用信息,可常用。
  • git reset --soft HEAD 回退,差异存在暂存区,也好用,不轻易删除代码。
  • git reset --hard HEAD 回退删除, 慎用,一不小心删除代码还不可逆。
  • git reset HEAD || git reset --mixed HEAD 回退,改变的差异在工作区。
  • 37
    点赞
  • 130
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DiuDiu_yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值