一次github事故记录

  • 一次实例:最开始我提交了三个commit,然后push到github里面。最新的commit叫stable version。然后我reset soft到三个版本前,是soft所以代码没变。这个时候理应只需要pull下来就行。但是,我再次提交了一个新版本叫version V0.1.0。这次提交的结果是导致了本地的丢弃了之前的三个commit。然后额外生成了一个新的commit。然后我把这个commit提交上去了。github上面显示提交成功,但是显示的却是merge,也就是他认为他上面的提交和下面的提交不是来源于同一个branch。他理解成两个branch互相merge。于是,当我再试着在本地进行下一次commit的时候,发生了错误。
  • 这一次commit在github上面确实发生了,但是github上面却认为这次的commit不属于任何一个branch。
  • 我对这次事故的理解是,github上面在我push的时候,就理解成是本地的东西merge到云端上面了,于是生成了一个新的hash值。但是本地这个时候就应该直接fetch然后pull,跟云端保持一致,但是如果没有这样做,就会导致云端在merge完以后,下一个push一个新的commit上来时,就会不知道这次的commit倒地时哪个branch,因为branch的名字是对的上的,但是哈希值对不上。于是虽然修改了commit,但是这次的commit不会被记录。而且后续的commit到github上面的东西也不会被commit记录,他只是确实影响了代码。这样做后患无穷。
  • 最后的解决办法:由于本地的commit出现了问题,最后是直接切换然后pull force(存疑)了github的代码,让github上面的main branch回到了之前的代码,然后直接将本地的branch删掉,然后直接checkout main。由于你的代码确实和云端的一样。那就在云端的branch的基础上,直接生成了一个branch。
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值