git lfs 批处理响应:发布 https://../info/lfs/objects/batch: ..proxyconnect tcp: tls: 第一条记录看起来不像 TLS 握手

Posted

技术标签:

【中文标题】git lfs 批处理响应:发布 https://../info/lfs/objects/batch: ..proxyconnect tcp: tls: 第一条记录看起来不像 TLS 握手【英文标题】:gitlfs batch response: Post https://../info/lfs/objects/batch: ..proxyconnect tcp: tls: first record does not look like a TLS handshake 【发布时间】:2020-05-13 08:32:45 【问题描述】:

我有一个开启 LFS 的 bitbucket 服务器 git repo。昨天我在我的本地克隆中为许多文件类型激活了 LFS 的使用,并推送了所有更改,包括 repo 根目录中的 .gitattributes。

我的一位同事提取了更改,执行了 git LFS install 但现在在他的克隆中发现 LFS 链接文件而不是真实文件。

另一个 git pull 没啥区别,一个 git LFS pull 给了他

$ git lfs pull
batch response: Post https://<bitbucket-server>/scm/<proj>/<repo>.git/info/lfs/objects/batch: 
...proxyconnect tcp: tls: first record does not look like a TLS handshake  
error: failed to fetch some objects from 
'https://<bitbucket-server>/scm/<proj>/<repo>.git/info/lfs'

不幸的是,任何 git lfs 信息页面上都没有提示这意味着什么 - 以及如何解决它。

有什么方法可以让 git lfs 为团队的其他成员工作? 而且,出于好奇,这条消息的原因是什么? 所有的 git lfs 教程都假装 git lfs 好用,但显然不是。

【问题讨论】:

【参考方案1】:

您的git lfs 操作似乎正在尝试使用您的公司代理服务器。如果您将no_proxy 变量设置为忽略&lt;bitbucket-server&gt; URL,您的运气可能会更好。

通常设置为这样的:

export no_proxy=127.0.0.1,localhost,.<your-domain>

但你可以显式设置为忽略&lt;bitbucket-server&gt;

export no_proxy=127.0.0.1,localhost,<bitbucket-server>

请注意该示例中 &lt;your-domain&gt; 之前的前导 .

另外,通过设置GIT_TRACE=1,您可以获得更多关于问题所在的提示。

GIT_TRACE=1 git lfs pull

【讨论】:

【参考方案2】:

如果您在环境中设置代理,有时git-lfs 无法工作,因此您可以尝试清理所有代理,然后它可能会工作。 您可以通过以下方式检查代理设置: env| grep -ai proxy.

【讨论】:

【参考方案3】:

我遇到了同样的问题,我可以解决它

unset https_proxy.

git-lfs 适用于 http_proxy 很好。可能会在未来帮助一些人!祝你好运!

【讨论】:

以上是关于git lfs 批处理响应:发布 https://../info/lfs/objects/batch: ..proxyconnect tcp: tls: 第一条记录看起来不像 TLS 握手的主要内容,如果未能解决你的问题,请参考以下文章

git lfs 使用指针文件处理 repo 中的重复文件

Git LFS的使用

git-lfs 离线安装

git-lfs 离线安装

详解 Git 大文件存储(Git LFS)

Git LFS 3.0.0 发布,对大文件进行版本控制的 Git 扩展