我使用windows,git bash提示
我正在尝试使用git archive命令和bitbucket
我收到错误遥控器:“git upload-archive:archiver死于错误”
有什么想法吗?
git archive --remote = ssh://git@bitbucket.org/username/reponame.git --format = tar --output =“file.tar”
我已经创建了所有SSH密钥和公钥等,甚至测试过ssh -v hg@bitbucket.org并且工作正常
答案 0 :(得分:10)
当您使用--remote
git archive --remote=ssh://git@bitbucket.org/username/reponame.git --format=tar --output="file.tar" master
会工作,提到分支的名称。
这也适用于标签的名称。
但是,根据this thread,提交ID将不工作:
是否有
git-archive
需要命名引用而不仅仅是提交(或树)ID的原因?是;通常git存储库不允许客户端访问任意sha1。相反,它们要求参考文件可以访问所请求的对象。
git-archive
没有正确执行此操作,并且最近更改为仅允许按名称引用refs,以及引用的子树(例如HEAD:subdir/
)。 这意味着我们不允许任意提交或树sha1,即使它可以从广告的refs中获得。是否很难修补git-upload-archive来使用ID? 我可以使用ref的标签,但在我的情况下会导致几乎每个提交都是一个看起来很浪费的标签。
正确执行有点贵,因为在一般情况下(有人请求树sha1),我们需要遍历每个提交的每个树以查看它是否可以访问。
我们可以实施更有限的一套规则,允许"
<commit>:<subdir>
&#34;并检查<commit>
是否可以到达 那将不允许任意树sha1,但我怀疑它会覆盖共同的 用例(即,您希望获取特定修订版本的树,甚至是子树)。