为什么<url>某些带有 HTTP 500 的存储库的"git clone --depth=1"失败?



我使用Stash的本地部署作为Git服务器。

在克隆某些存储库(如https://stash.mydomain.net/scm/~be2274/chef-repo.git(时,如果我在没有--depth=1的情况下进行克隆,则一切正常,但在其他情况下失败:

git clone不带--depth=1:

$ git clone -v --bare 'https://stash.mydomain.net/scm/~be2274/chef-repo.git'
Cloning into bare repository 'chef-repo.git'...
POST git-upload-pack (gzip 1765 to 943 bytes)
remote: warning: unable to find all commit-graph files
remote: Enumerating objects: 434, done.
remote: Counting objects: 100% (434/434), done.
remote: Compressing objects: 100% (433/433), done.
remote: Total 14489 (delta 310), reused 0 (delta 0)
Receiving objects: 100% (14489/14489), 1.90 MiB | 646.00 KiB/s, done.
Resolving deltas: 100% (9806/9806), done.

git clone--depth=1

$ git clone -v --bare --depth=1 'https://stash.mydomain.net/scm/~be2274/chef-repo.git'
Cloning into bare repository 'chef-repo.git'...
POST git-upload-pack (180 bytes)
error: RPC failed; HTTP 500 curl 18 transfer closed with outstanding read data remaining
fatal: the remote end hung up unexpectedly

--depth=1作为git clone的选项仅克隆最近的提交时,为什么Git会失败?我不知道为什么会发生这种情况,错误消息也没有提供真正的信息。

什么情况会使git clone --depth=1 <url>HTTP 500一起失败?

500错误被定义为内部服务器错误,这意味着服务器遇到了一些问题,无法正确完成请求。这是一个服务器端问题,因此,您需要查看服务器日志来找出问题所在。公开披露有关内部故障的信息被认为是一种安全风险,因此如果不访问服务器,您可能无法发现任何信息。

由于这是一个服务器端问题,您无法在客户端解决它或以其他方式解决它。您可以通过选择不以触发Git的方式调用Git来解决它,但缺陷在服务器上,需要在那里修复。如果您在客户端所做的操作有问题,您将收到一个400系列的错误,而不是500系列的错误。

如果你不能控制服务器,你应该向控制服务器的人报告问题,这样他们就可以采取适当的措施来解决问题

最新更新