运行Git-wire协议v2的文档指出,为了使用协议v2调用git-upload-pack
,需要使用包含version=2
的环境变量GIT_PROTOCOL
来运行它。我通过运行终端来做到这一点:
GIT_PROTOCOL='version=2' bash -c 'git upload-pack .'
但我仍然可以运行v1协议。我从v1表单的响应中看到:
00f2562e09028aef13e2e4fa9483bf32a26329de78e1 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow deepen-since deepen-not deepen-relative no-progress include-tag multi_ack_detailed symref=HEAD:refs/heads/master agent=git/2.15.1
<truncated>
有人能帮我找出我做错了什么吗?或者了解如何使用有线协议版本2调用git-upload-pack
吗?
Git 2.15不支持v2协议。处理这个环境变量的代码至少在2.16之前才存在,而完整的v2协议直到后来才出现。你需要一个更新版本的Git;我推荐Homebrew的。
在我的系统上,2.29,我得到以下内容:
$ GIT_PROTOCOL='version=2' bash -c 'git upload-pack .' | head -n1
000eversion 2