这肯定是一些基本的东西,但我搞不懂。我有一个 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/main
main
如果您想要查看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
或者,解决方案可能比上面的答案更简单:
前往要克隆的 GitHub 仓库
将 repo 分叉到你的 GitHub 帐户
现在,从你的机器的 CLI 中执行“通常的事情”:
$ git clone https://github.com/<your account>/<your fork>
最近,当我尝试在 raspberry pi GitHub 站点上克隆一些存储库时,我发现这一点很有必要。