Git 学习 —— 错误分析与解决

声明:

    本文是以我自己学习Git的资料作为总结,希望可以对您有所帮助。下面介绍一些在工作用使用git遇到的问题,希望可以对遇到同样问题的你有帮助。

下面介绍几种出现的问题:

1. push的代码依靠之前的本地提交:

现象与原因:多次git commit 但是只Git push最后一次的git commit。

   git commit 1   git commit 2   git commit 3

             1 --------------> 2 -------------> 3

                                                          |

                                                   git push

如上面所示,在1的基础上有两次提交他们分别是2和3。而他们从下到上是相互依赖的,所以如果只Git push 3 ,而没有Git push 2,这个时候就会在官网提示代码不能merge的情况。这时因为3依赖的2还没有git push,所以这个时候会报错。

 解决办法: 使用git reset --hard 1commitID来将本地提交强制回到1,这个时候在本地仓中只剩余1。而我们需要从新对代码进行提交,而提交的流程为上面0~7的流程。而从新提交代码后这个时候会从新出现一个2的提交,这个时候我们在使用git push 来将2从本地仓push到远程仓,就可以了。

2. push后无法再次push:Unpack error

现象:当git commit时格式错误,我们并没有注意到,但是git push后在公司官网会提示格式错误,所以这个时候需要从新对格式进行更改,这个 时候可以使用git commit --amend命令来对commit 的内容进行更改,而更改后再次使用git push时会出现错误。

原因:这是由于在默认的情况下Git push 会向服务器推送时做优化处理,从而来将发送的包降到最低。而这样优化的方式是比较本地仓与远程仓的内容,并将差异的部分上传,这个时候Git push 默认使用--thin选项。而我们上面的更改只是对commit的内容进行了修改,而没有对本地仓中的内容进行修改,所以他们比较会发现这个两个仓中的内容没有差别,所以他认为这次push是没必要的,所有就提示失败了。

解决办法:使用:git push 加 --no-thin参数来push到远程仓。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值