git revert、reset撤销

git reset 撤销

 

git reset 撤销_Fir trees island的博客-CSDN博客_git reset 撤回git 撤销操作,git resetgit commit之后,想撤销commit写完代码后,我们一般这样$git status //查看并确定自己修改的文件有哪些$git add file_name //添加所有文件$git commit -m "本功能全部完成"执行完commit后,想撤回commit,怎么办?献上骚操作:$git reset --soft HEAD^这样就成功的撤销了你的commit注意,仅仅是撤回commit操作,您写的代码仍然保留。...https://blog.csdn.net/m0_50668851/article/details/108651112?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_default&utm_relevant_index=2

Git小技巧——撤销&回滚操作revert和reset——一看就会_可乐多点冰的博客-CSDN博客_撤回reset最近需要删除某些已经提交的commit。便想到revert和reset。由于理解不深,在使用revert遇到了一个坑。区别:revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在;reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。之前读到上面的话,自以为revert可以回滚到某个过往的某个commit,并且保持与这个commit那个时候一模一样的代码,只不过这个commit之后提交commit只显示记录,但是代码没有。即,a-b-https://blog.csdn.net/u013541707/article/details/107387555/?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1.topblog&spm=1001.2101.3001.4242.2&utm_relevant_index=4

最近需要删除某些已经提交的commit。便想到revert和reset。由于理解不深,在使用revert遇到了一个坑。

区别:

revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在;
reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。
1
2
之前读到上面的话,自以为revert可以回滚到某个过往的某个commit,并且保持与这个commit那个时候一模一样的代码,只不过这个commit之后提交commit只显示记录,但是代码没有。

即,a-b-c-d,想从d回撤到a,使用revert则变为了a-b-c-d-a_new的log记录,但是以为代码a_new与a一致。

【实际上】revert只是把commit a时的代码撤销,并且产生一个新的commit,但是b c d的代码都存在,而a的代码不存在。
所以revert为撤销某一个commit a处的代码,而不是回滚到commit a处!
若使用回滚到某处一模一样的代码则使用reset:
git reset --hard commit_id
 

记一次git revert误操作找回

源于自己的手贱,git revert 掉了代码,好在自己有commit记录,于是找了一下解决方案:
首先
git reflog
查看本地commit记录
找到对应的commit id
最后
git reset --hard [commit id]



作者:1024k纯金
链接:https://www.jianshu.com/p/269d6f221ec4
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

如果是reset 后发现删错了呢?

git reflog

然后再git reset 

[git] git reset --hard后恢复操作_rifu19950726的博客-CSDN博客《转》Git 撤销commit的注意事项 http://www.cnblogs.com/scodong/p/4757378.html Git撤销commit的操作命令 git reset –hard HEAD^一、新建三个文件,demo1,demo2,demo3 二、git add 命令提交到暂存区,git reset HEAD demo1就是把提交到暂存区里的文件撤销。 上图...https://blog.csdn.net/rifu19950726/article/details/81903769?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-2.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-2.pc_relevant_default&utm_relevant_index=5

4 自己的远程分支版本回退的方法

如果你的错误提交已经推送到自己的远程分支了,那么就需要回滚远程分支了。
首先要回退本地分支:

git reflog
git reset --hard Obfafd
紧接着强制推送到远程分支:

git push -f
注意:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支
————————————————
版权声明:本文为CSDN博主「方2郭」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_35763513/article/details/112100406

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值