我希望从此链接下载 mysite 文件夹: https://github.com/username/repository/master/
你可以从github下载文件/文件夹
只需使用:
svn export <repo>/trunk/<folder>
例如:
svn export https://github.com/lodash/lodash/trunk/docs
注意:您可以首先使用
svn ls <repo>/trunk/folder
在终端中列出文件夹的内容
(是的,这里就是 svn。显然在 2016 年你仍然需要 svn 来简单地下载一些 github 文件)
您可以使用 Github Contents API 获取存档链接并使用
tar
检索指定文件夹。
curl https://codeload.github.com/[所有者]/[repo]/tar.gz/master | \ tar -xz --strip=2 [repo]-master/[文件夹路径]
例如,
如果您想从 zeit/next.js 下载 examples/with-apollo/ 文件夹,您可以输入以下内容:
curl https://codeload.github.com/zeit/next.js/tar.gz/master | \
tar -xz --strip=2 next.js-master/examples/with-apollo
使用GitZip在线工具。它允许将 github 存储库的子目录下载为 zip 文件。不需要 git 命令!
这是根据此post的正确解决方案:
创建目录
mkdir github-project-name
cd github-project-name
设置 git 存储库
git init
git remote add origin <URL-link of the repo>
将您的 git-repo 配置为仅下载特定目录
git config core.sparseCheckout true # enable this
设置您要下载的文件夹,例如您只想从
https://github.com/project-tree/master/doc
下载 doc 目录
echo "/absolute/path/to/folder" > .git/info/sparse-checkout
例如如果您只想从主存储库下载 doc 目录
https://github.com/project-tree/master/doc
,那么您的命令是 echo "doc" > .git/info/sparse-checkout
。
照常下载您的存储库
git pull origin master
像我一样浏览 github 存储库并希望从浏览器下载存储库中的文件夹,而不需要任何第三方工具,您可以使用 github 的 VS Code 扩展。
第1步在浏览器中打开您要下载的存储库的目录。
步骤 2 在网址栏中将
.com
替换为 .dev
。例如:https://github.com/lodash/lodash
将变为 https://github.dev/lodash/lodash
。
第 3 步 这将打开该 git 存储库的 VS Code 界面。只需右键单击您要下载的文件夹,然后按选项中的下载即可。
如果您想自动化这些步骤,这里的建议只能在一定程度上起作用。
我遇到了这个名为
fetch
的工具,它对我来说效果很好。您甚至可以指定版本。因此,需要一个步骤来下载并将其设置为可执行文件,然后获取所需的文件夹:
curl -sSLfo ./fetch \
https://github.com/gruntwork-io/fetch/releases/download/v0.3.12/fetch_linux_amd64
chmod +x ./fetch
./fetch --repo="https://github.com/foo/bar" --tag="${VERSION}" --source-path="/baz" /tmp/baz
还有一个不错的浏览器扩展,允许 dl 文件或文件夹
增强版-github google-chrome 浏览器扩展
这可能不是最有效的解决方案,但我认为它很有趣!这仅使用 bash 下载 github 上文件夹中的所有文件
(我用它来下载 postgresql 教程的文件,但没有在其他地方测试过)
curl "https://github.com/postgres/postgres/tree/master/src/tutorial" > test.html
links=$(cat test.html | grep -o \[^\"\]\*/blob/\[^\"]\*)
echo $links
echo "Now as a list.."
as_list=($links)
for (( i=0; i<${#as_list[@]}; i++ ));do
download_link=("https://raw.githubusercontent.com${as_list[$i]}")
echo "completing link: "
echo "${download_link///blob/""}"
wget "${download_link///blob/""}"
done
说明:
(1)第一行将目标文件夹下载为html,并保存为test.html
(2) 第二行提取页面上文件的所有链接。这是通过观察 html 上的文件链接看起来像“/postgres/postgres/blob/master/src/tutorial/.gitignore”来实现的,我们可以通过查找“blob”并将所有文本获取到最近的值来获取所有这些内容两边都引用“
(3) 我们把它变成一个列表
(4)为了完成工作,我们观察到文件的原始文本版本的 url 看起来略有不同,例如对于 url“/postgres/postgres/blob/master/src/tutorial/.gitignore”,原始文本文件的 url 为“https://raw.githubusercontent.com/postgres/postgres/master/src/tutorial/ .gitignore”。因此,为了处理数据,我们将“/postgres/postgres/blob/master/src/tutorial/.gitignore”转换为“/postgres/postgres/master/src/tutorial/.gitignore”,最后转换为“https://raw” .githubusercontent.com/postgres/postgres/master/src/tutorial/.gitignore”
附注抱歉,如果我的 bash 脚本很笨重 - 我是一个新的 Linux 用户
您可以使用
git archive
git archive --remote=ssh://github.com/packageName.git HEAD path/to/my/dir | tar -x
您可以在克隆或下载选项(Git URL 或下载 Zip)下下载完整的文件夹
有一个下载Zip的按钮
通过使用命令,您可以在计算机上下载完整的文件夹,但为此您需要在计算机上安装 git。你可以在下面找到 Git url
您也可以直接克隆存储库,克隆完成后,只需选择您想要的文件夹或文件夹即可。克隆:
git clone https://github.com/somegithubuser/somgithubrepo.git
然后转到克隆的 DIR 并找到要复制的文件或 DIR。