当“git clone”URL 时出现“致命:未找到存储库”

当“git clone”URL 时出现“致命:未找到存储库”

这肯定是一些基本的东西,但我搞不懂。我有一个 github URL,格式为“https://.../tree/main”。我该如何下载内容?回应

git clone https://.../tree/main

我明白了

fatal: repository 'https://.../tree/main/' not found

当我做

git clone https://.../

我获得了根文件夹的内容,但没有获得我想要的子文件夹。

我究竟做错了什么?

答案1

GitHub HTTPS URL 的形式为,末尾https://github.com/OWNER/NAME带有可选字符。您使用的 URL(带有)旨在在用户界面中呈现分支,但这不是有效的存储库,您无法将其与 Git 一起使用。.git/tree/mainmain

如果您想要查看main存储库中的分支,请使用适当的 URL 克隆它,然后运行git checkout -b main origin/main​​,这将创建一个main作为远程分支副本的分支。如果您已经在分支 上main,那么这将不起作用,您只能在克隆存储库后查看它。

答案2

当存储库为空时,您也会看到此错误。

shell> git clone https://repos.example.org/test_001.git
Cloning into 'test_001'...
fatal: repository 'https://repos.example.org/test_001.git/' not found

这意味着在服务器上创建一个空的存储库进行测试是不够的

admin# pwd
/usr/local/www/repos.example.org
admin# git init --bare test_001.git

注意:例如,Apache 中的虚拟主机

admin# cat /usr/local/etc/apache24/extra/repos.example.org.conf 
     <VirtualHost *:80>
     ServerName repos.example.org
     DocumentRoot /usr/local/www/repos.example.org
     </VirtualHost>

     <VirtualHost *:443>
     ServerName repos.example.org
     DocumentRoot /usr/local/www/repos.example.org
     SSLCertificateFile /usr/local/etc/ssl/certs/repos.example.org.crt
     SSLCertificateKeyFile /usr/local/etc/ssl/private/repos.example.org.pem
     </VirtualHost>
admin# cat /usr/local/etc/apache24/Includes/usr-local-repos-example.conf 
<Directory /usr/local/www/repos.example.org>
  Options Indexes FollowSymLinks
  DirectoryIndex index.html
  AllowOverride All
  Require all granted
</Directory>
admin# ll /usr/local/www/repos.example.org/test_001.git/
total 40
drwxr-x---  7 admin  www  512 Jul 22 12:36 ./
drwxr-x---  3 admin  www  512 Jul 22 12:36 ../
-rw-r-----  1 admin  www   23 Jul 22 12:36 HEAD
drwxr-x---  2 admin  www  512 Jul 22 12:36 branches/
-rw-r-----  1 admin  www   66 Jul 22 12:36 config
-rw-r-----  1 admin  www   73 Jul 22 12:36 description
drwxr-x---  2 admin  www  512 Jul 22 12:38 hooks/
drwxr-x---  2 admin  www  512 Jul 22 13:00 info/
drwxr-x---  7 admin  www  512 Jul 22 13:00 objects/
drwxr-x---  4 admin  www  512 Jul 22 12:36 refs/

在浏览器中测试 URL https://repos.example.org/test_001.git/。您应该看到 repo 的内容

Index of /test_001.git
Parent Directory
HEAD
branches/
config
description
hooks/
info/
objects/
refs/

在服务器上本地克隆 repo 并提交一些内容。这还会创建分支 master。然后,您将能够通过 https 克隆 repo

shell> git clone https://repos.example.org/test_001.git
Cloning into 'test_001'...

答案3

或者,解决方案可能比上面的答案更简单:

  1. 前往要克隆的 GitHub 仓库

  2. 将 repo 分叉到你的 GitHub 帐户

  3. 现在,从你的机器的 CLI 中执行“通常的事情”

    $ git clone https://github.com/<your account>/<your fork> 
    

最近,当我尝试在 raspberry pi GitHub 站点上克隆一些存储库时,我发现这一点很有必要。

相关内容