我对 Git/LibGit2Sharp 相当陌生,正在尝试使用 LibGit2Sharp 创建 git 存储库的镜像。按照此处给出的指示进行操作:https://github.com/libgit2/libgit2sharp/issues/577 ,我首先通过添加远程存储库将外部存储库镜像到本地文件夹,并使用 repo.Network.fetch(remote, fetchRefSpec)
其中 fetchRefSpec
是 引用文献/\*:引用文献/*
现在,我想将数据推送到另一个远程存储库。在这里我很困惑。因为,当通过 git 命令执行此操作时,您将 remote.remoteName.mirror
配置条目设置为 true,然后执行 git push remoteName
。当mirror设置为true时指定任何其他refSpec
都会出错。
但是,当使用 LibGit2Sharp 时,即使我设置了 mirror = true
,我仍然需要在推送时提供 pushRefSpec
。提供空或通配符 refSpecs 会引发异常。我什至尝试了 refs/tags/\*:refs/tags/*
,但我得到了同样的异常。循环遍历 pushRefSpec
中的所有分支可以工作,但不会创建镜像。
有人试过这个吗?有没有更好的方法来做到这一点?
最佳答案
.mirror
配置是 git 工具的一个选项。 libgit2(sharp) 在不同的级别上工作,您需要准确指定要推送的内容。
不幸的是,目前它不支持带有推送模式的引用规范,因此如果您想推送每个引用,则必须将每个引用单独添加为推送的引用规范。
关于push - Libgit2sharp如何进行镜像推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25721202/