如何在 JGit 中做一个 "git clone --mirror"?

How to do a "git clone --mirror" in JGit?

阅读 documentation 似乎没有明确的方法在 JGit 中执行 git clone --mirror

git push 的情况下有一个 workaround。我想知道 git clone 是否也有。有什么想法吗?

我的理解是,当使用 --mirror 时,所有引用都会被复制 as-is。要使用 JGit 模拟此行为,请初始化裸存储库并配置远程存储库。

现在使用 FetchCommand 从远程存储库传输所有引用。确保指定 ref-specs 以包含所有相关参考,如标题、标签、注释等。

Git git = Git.init().setBare(true).setGitDir(...).call()
git.remoteAdd().setName("origin").setUri(new URIish("URL/to/mirror/source")).call();
git.fetch().setRemote("origin").setRefSpecs("+refs/*:refs/*").call();