如何更改使用--bare克隆的git存储库以匹配使用--mirror克隆的一个存储库?

时间:2012-09-10 11:38:44

标签: git version-control git-push

此问题与git - how to mirror file from other repoHow do I update my bare repo?

不同

由于使用--mirror克隆的存储库是裸存储库,我是否可以将使用--bare克隆的存储库设置为使用--mirror克隆的存储库?可以通过简单地修改配置文件来完成吗?

如果没有,是否有其他方法可以将裸存储库转换为镜像存储库?

另一个问题,为什么我不能在镜像仓库中使用git push --all ,而这个命令可以在一个裸仓库中运行?

3 个答案:

答案 0 :(得分:9)

要将使用git clone --bare克隆的存储库更改为与git clone --mirror匹配的存储库,请执行以下操作:

$ git config remote.origin.fetch "+refs/*:refs/*" 
$ git config remote.origin.mirror true

然后做一个git fetch,一切都应该是最新的。

答案 1 :(得分:2)

如果您使用git clone --mirror克隆了您的仓库,则git push --all之后的default matching push policy会将所有本地分支机构推送到远程仓库。

但是如果您的远程仓库已作为远程引用添加到您的本地仓库(即您的本地仓库已从另一个远程仓库克隆),那么git push --all secondRemoteRepo将不会找到许多匹配的分支来推送,除非你先取这些分支。
所以这应该有效:

git fetch secondRemoteRepo
git push --all secondRemoteRepo

答案 2 :(得分:0)

如今:

git remote add --mirror=fetch origin <url>

然后

git fetch
相关问题