【问题标题】:How do I implement sparse checkout in JGit?如何在 JGit 中实现稀疏结帐?
【发布时间】:2013-01-02 16:00:59
【问题描述】:
我需要在 Github 存储库中拉取特定子目录的内容并将其放在我自己的目录下。经过大量研究,似乎稀疏的结帐是要走的路。但是,我有点不确定,如何使用 JGit 来实现它。
【问题讨论】:
标签:
java
git
github
jgit
sparse-checkout
【解决方案1】:
1) 您不能只克隆 repo 的一部分——例如,带有 lib 和 Tests 的 repo,但您只想克隆 lib 部分。
2) 您可以使用“git clone --depth DEPTH ...”仅克隆 DEPTH 修订版,但您仍然可以获得整个 repo,而不是所有修订版。 (还有其他限制,请先man git-clone。)
3)您可以执行git clone --bare ...,然后只签出您需要的文件(您所说的“稀疏签出”)。 (唉,这个方法的步骤比这两个要多……)
请注意,在 (3) 中,除非您添加 --depth DEPTH 参数,否则您仍将获得来自原始存储库的所有历史记录。