发现按照git push 卡住去google,能搜到不少之前同行发的blog有提到,但貌似没有解决的。这个问题在msysgit的最新版已经解决了,希望这个solution扩散出去。让更多的程序猿同学看到。
=====================
啊啊啊,研究了两天,终于找到solution了。。先仰天长啸一会儿
=====================
项目组使用的server挂掉了,硬盘损毁,svn等好多内容不再可用,恢复无望。
虽然我们的代码之前并未怎么在上面放,但是前车之鉴,这个时候就体现除了git的高大上了。于是准备抛弃之前搭建的svn,搞个git。
在闲置的mac server上使用gitosis搭建,跑起了git daemon。使用ssh-gen来checkin,觉得好方便有木有!!!高大上有木有!!!
直到我在windows里面挂掉了。。。
大概是这样的(从原帖copy的):
git clone git://xxx.xxx/xxx.git
然后添加文件,编辑,git add,commit,然后push,结果:
[master 9447645] test
1 file changed, 1 insertion(+)
Counting objects: 20, done.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (18/18)
就此卡住不动,变更也没有push进去。。。。进不去。。。不去。。。去。。。
还以为是自己打开的方式不对,各种重试,重试,重试,换个姿势,重试。。。结果,google吧(顺便鄙视百度,毛也搜不出来),翻遍互联网终于等到你~还好我没放弃。
windows的git工具,甭管是gui还是command tool,统统是基于msysgit的。而msysgit在实现上,有一点儿小瑕疵,查了万千资料,发现这个问题,由于开源的贡献者们太少太忙太不容易,耽误了4年没解决。据说是对什么side-bind-64bit的支持不好导致的。what the hell! 谁晓得那是个啥。。。
搜遍了各种solution,有牛人在server端修改git的binary文件,据说可以糊弄过关。但我不是在linux里面搭建的git server,而是mac;也没在binary文件里面找到那个要修改的string。
最后终于发现开源大牛们给出了一个解决办法(为毛早没发现啊,足足两天啊。。。),在msysgit的最新版本1.9.4里,可以通过一个设置来摆平:
在git的config里面添加:
git config --global sendpack.sideband false
对我来讲,it works fine.
从此git任我行。怎么push怎么酷炫。
妈妈再也不用担心我的server挂掉了。一行代码费了两天牛劲,虽然感觉好像被耍了;但还是觉得挺充实的。
以上。
顺便附上这个问题旷日持久的讨论:
https://github.com/msysgit/git/issues/101#
再次感谢开源的大牛们
哦,对了,他们绝大部分看不懂中文: A BIG BIG THANK TO THE GUYS WHO IS WORKING FOR THE OPEN SOURCE PROJECTS!
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com