如何在 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();
阅读 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();