回滚和撤回git reset & git revert

一、git reset 

1、回滚到某个commit版本,这个commit之后的提交log全部没了。

2、当回滚时,工作区和暂存区还有文件没有提交或者stash时:

--soft:只回退版本库,工作区和暂存区的内容不回退。

--mixed(默认):回退版本库和暂存区,工作区中的内容不回退。

--hard:工作区,暂存区,版本库中的内容都回退到指定的提交。(危险的)

3、命令:回滚到某一commitId,若git push不上去,则-f强制推送。

git reset coommitId

git push -f origin 分支名

二、git revert 

1、回滚某一个提交的所有代码,之前的提交log都在,创建了一个新的log记录回滚这次提交。

2、git revert <commit>命令:

  1. 这个命令会生成一个新的提交记录,新的提交记录就是把需要移除的提交撤销掉,所生成的新提交。

  2. 如果工作区或暂存区还有修改未提交,那么会提示需要先提交或存储起来这些文件。

  3. 如果在移除的过程中发生了冲突,可以在解决了冲突后,使用 git add 命令添加修改的冲突文件到暂存区中,在使用 git revert --continue 来继续操作。

    如果不想继续操作,当然也可以使用 git revert --abort 命令来停止移除操作,恢复到执行git revert <commit>命令之前的状态。

  4. 如果revert移除的过程中出现冲突,需要把这些冲突解决才可以继续操作。我们可以使用 git revert --skip 命令来跳过一个commit的冲突解决。如果后续还有冲突,也同样如此进行跳过,直到全部冲突解决完成。

    但是使用git revert --skip 命令跳过的commit,将会在历史提交记录中被删除(reflog命令还是可以看到的),所以git rebase --skip 这个命令慎用。

三、区别

revert命令撤回某个改动,reset命令撤回到某个改动 

引用:【学了就忘】Git后悔药 — 37.revert撤销(一) - 简书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值