如何从GitHub上托管的远程Git repo中仅下载特定文件夹或目录?
举个GitHub repo的例子:
git@github.com:foobar/Test.git
其目录结构:
Test/
├── foo/
│ ├── a.py
│ └── b.py
└── bar/
├── c.py
└── d.py
我只想下载foo文件夹,而不是克隆整个测试项目。
如何从GitHub上托管的远程Git repo中仅下载特定文件夹或目录?
举个GitHub repo的例子:
git@github.com:foobar/Test.git
其目录结构:
Test/
├── foo/
│ ├── a.py
│ └── b.py
└── bar/
├── c.py
└── d.py
我只想下载foo文件夹,而不是克隆整个测试项目。
当前回答
要从GitHub导出目录,请将目录url中的“/tree/master/”替换为“trunk/”。
例如,要从以下URL导出目录:
https://github.com/liferay/liferay-plugins/tree/master/portlets/sample-hibernate-portlet
运行以下命令:
svn export https://github.com/liferay/liferay-plugins/trunk/portlets/sample-hibernate-portlet
其他回答
有一个名为githubdl的Python3pip包可以做到这一点*:
export GIT_TOKEN=1234567890123456789012345678901234567890123
pip install githubdl
githubdl -u http://github.com/foobar/test -d foo
项目页面在此处
*免责声明:这个包裹是我写的。
在尝试了所有答案后,对我来说最好的解决方案是:
GitHub基于vscode的编辑器。
赞成的意见:
不需要任何额外的工具,如svn或API令牌。内容大小无限制另存为目录或文件,而不是存档。
说明书
转到任何回购。(例如。https://github.com/RespiraWorks/Ventilator/tree/master/software)按或者在URL中将.com替换为.dev,以在GitHub的内部编辑器中打开repo在资源管理器窗格(左侧或按Ctrl+Shift+E)中,右键单击所需的文件/文件夹并选择下载。在“选择文件夹”对话框中,选择磁盘上希望所选文件/文件夹存在的目录。
Note
我尝试了其他解决方案,如接受的答案,
不要只为此安装和学习svn。其他工具,如Download Directory、Refined GitHub、GitZip和DownGit,要么需要API令牌,要么无法下载大型目录。
其他选项
带有远程存储库扩展名的VSCode,用于打开存储库并下载文件/文件夹。
我们的团队为此编写了一个bash脚本,因为我们不想在我们的裸机服务器上安装SVN。
https://github.com/ojbc/docker/blob/master/java8-karaf3/files/git-download.sh
它使用github API,可以从如下命令行运行:
git-download.sh https://api.github.com/repos/ojbc/main/contents/shared/ojb-certs
如果您需要以编程方式执行,并且不想依赖SVN,则可以使用GitHubAPI递归下载所有内容。
为了获得灵感,以下是我的红宝石要点:https://gist.github.com/cvengros/b2a7e82f66519d423b6f
可以按以下方式使用git-svn。
首先,用主干替换树/主节点然后,通过sudoaptinstallgitsvn安装gitsvn
git svn clone https://github.com/lodash/lodash/trunk/test
这样,您就不必经历设置svn的痛苦,特别是针对Windows用户。