问题描述
git并不是真正为从远程存储库访问单个文件而设计的,但是您可能会滥用git archive@H_403_2@它。缺点是您必须下载“树”而不是仅下载所需的Blob。
例如
git archive --remote=url://to.git.repo branch path/to/dir | tar -x file
@H_403_2@
或者,如果在远程存储库上设置了gitweb,则可以使用简单的curl或wget命令以“原始”格式下载任何文件。
解决方法
有没有一种方法可以用Java从远程git存储库中以编程方式下载单个文件?
- 我更喜欢使用尽可能少的带宽的解决方案,最好只下载单个文件。我不需要浏览存储库,我已经有了文件的路径。
- 我更喜欢不依赖于其他应用程序的解决方案(例如,在计算机上安装另一个git客户端)。一个包含git客户端实现本身的Java库是最佳的。
我可以使用SVNKit与Subversion进行类似的操作,并且我已经看到有git的纯Java实现(eclipse的JGit),它可以完成类似的操作,因此我希望有一个肯定的答案;尽管据我了解git的工作原理-
仅允许从本地存储库进行更新-这可能会出现问题。