我正在使用Jgit 3.7从Git存储库导入文件。但我想只导入一组文件夹而不是全部。 我知道Git支持这个,但我想知道Jgit 3.7支持相同吗?如果是这样,有人可以指导我。
答案 0 :(得分:1)
按照设计,克隆的git存储库始终包含原始存储库的所有文件和文件夹。
使用原生git,您可以创建shallow clone(git clone --depth 1 ...
),但此功能为not yet implemented in JGit。
与其一般设计相反,原生git(自1.7版本开始)允许您使用sparse checkouts创建部分克隆,但这在JGit中也不可能是开箱即用的。
你可以在JGit中做什么 - 一旦你克隆了一个存储库 - 就是checkout只有一些分支或提交的文件。
git.checkout().setStartPoint( "some-branch" ).addPath( "path/to/file" ).call()
答案 1 :(得分:0)
基于@rüdiger-herrmann的回答:
String url = "https://github.com/renaud/solr_noLenghNormSimilarity";
String hash = "802558f58add3a1f5b33f04254194bd7cd59b27f";
String subPath = "src/org";
String dest = "myclone";
File localPath = new File(dest);
Git gitRepo = Git.cloneRepository().setURI(url).setDirectory(localPath).setNoCheckout(true).call();
gitRepo.checkout().setStartPoint(hash).addPath(subPath).call();
gitRepo.getRepository().close();