使用写入协议v2调用git上传包

  • 本文关键字:git 调用 v2 协议 git
  • 更新时间 :
  • 英文 :


运行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

最新更新