当我通过Git部署到Heroku时,Slug构建成功完成,但之后我遇到了一个Git协议错误:
$ git push heroku -f v0.0.20:refs/heads/master
(...)
remote: -----> Compressing...
remote: Done: 55.3M
remote: -----> Launching...
remote: Released v40
remote: https://....herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
fatal: protocol error: bad line length character: erro
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'https://git.heroku.com/....git'
我尝试过手动SSH到git服务器来调试,但是没有成功,由于SSL的原因,tcpdump是无用的。
ssh git@heroku.com "git-upload-pack ....git"
没有产生任何可疑的结果:
00c93a701c509d5730ba92e91463707699721929d477 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed symref=HEAD:refs/heads/master agent=git/1.9.1
003f3a701c509d5730ba92e91463707699721929d477 refs/heads/master
0000
我联系了Heroku支持团队,他们尝试将相同的代码推送到相同的应用程序,但是这次却成功了。
如果您有任何关于如何调试此问题的建议,我将不胜感激。
--force
时要非常小心,特别是在CI管道上。在我看来,接受的答案的第二个命令(使用^{}
)应该可以在不需要强制推送的情况下工作。 - Leonardo Dagnino