git回滚

回滚

1.强制推送

场景:
	 t1: 修改文件'小白兔,白又白',并提交,提交名字为t1
	 t2: 修改文件‘两只耳朵竖起来',并提交,提交名字为t2
需求:
	 我想回滚到t1提交后的时候(也就是'小白兔,白又白'更改后并推送后的文件状态)
步骤:
git log 	查看想要回退的提交的哈希值
git reset --hard <commit-hash>  	回退到目标提交(这里用t1的hash)
git push --force origin <branch-name> 	由于你更改了本地分支的历史记录,你需要使用 git push --force 来强制将更改推送到远端。这将覆盖远端分支的历史记录。注意:<branch-name> 是你正在工作的分支的名称。
//全部执行后,t2的记录没有了
场景:
	 a1: 修改文件'爱吃萝卜和青菜',并提交,提交名字为a1
	 a2: 修改文件‘蹦蹦跳跳真可爱',并提交,提交名字为a2
	 a3: 修改文件'小白兔结束了',并提交,提及名字为a3
需求:
	 我想回滚到a2未提交的时候,并且保留a2的状态,将'蹦蹦跳跳真可爱'改成'不蹦不跳真可爱'
步骤:
git reset --mixed <commit-hash>	回退到目标提交(这里用t2的hash)
git push --force origin <branch-name> 
//执行后,a3的记录没有了

使用 git reset 命令来回退到那个提交。你有几个选项:

  • --soft:保留工作目录和暂存区的更改,只将 HEAD 指向目标提交。
  • --mixed(默认):保留工作目录的更改,但清空暂存区,将 HEAD 指向目标提交。
  • --hard:丢弃所有未提交的更改,将工作目录和暂存区都重置为目标提交的状态。

弊端:

  • 强制推送会覆盖远端分支的历史记录(),这可能会导致其他协作者的工作丢失或产生合并冲突。
  • 在执行此操作之前,确保你了解后果,并已通知所有可能受影响的协作者。
  • 如果你只是想撤销最近的几次提交,但保留这些更改在暂存区或工作目录中,你可以考虑使用 git revert来创建一个新的提交来撤销之前的更改,而不是直接修改历史记录。
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值