git 各种回退回顾

Git已经commit但是没有push的如何恢复到工作区呢,这个应该是个简单操作,但是确实忘了。上次我们知道如果push到了远程,那么这样就可以清除远程的push记录

git reset --hard <commitId>
git push origin HEAD -force

那么commit了之后而没有push的呢,如何将其恢复到工作区呢?

git reset HEAD^

记住三个参数 --soft --mixed --hard,--soft 不删工作工作空间改动代码,撤销commit, 不撤销git add .--mixed不删工作空间改动,撤销commit和add,--hard,撤销工作空间改动,删除commit,删除add

简介: 已经git commit一次提交,但是想撤销commit这次提交,且保留代码不变

问题背景:

写完代码后,我们一般这样
git add . //添加所有文件
git commit -m "本功能全部完成"

 

执行完commit后,想撤回commit,怎么办?

 

解决方法:

git reset --soft HEAD^

 

这样就成功的撤销了你的commit

注意,仅仅是撤回commit操作,您写的代码仍然保留。

  • 说一下个人理解:

HEAD^的意思是上一个版本,也可以写成HEAD~1

如果你进行了2次commit,想都撤回,可以使用HEAD~2

 

关于参数:

–mixed

意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作

这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。

–soft

不删除工作空间改动代码,撤销commit,不撤销git add .

–hard

删除工作空间改动代码,撤销commit,撤销git add .

注意完成这个操作后,就恢复到了上一次的commit状态。

 

顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:

git commit --amend

 

此时会进入默认vim编辑器,修改注释完毕后保存就好了。

-------------------

回顾下:

丢掉file文件工作区的修改

git checkout -- file
一定要加--

如果工作区的内容一金git add 到了暂存区,那么可以如此

git reset 既可以回退版本,也把暂存区的内容回退到工作区。

git reset HEAD -- file 把暂存区的修改重新放回工作区,HEAD表示最新版本

删除版本库中的文件

git rm 文件
git commit -m ''

恢复同样用
git checkout -- file 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值