如何更改用--bare克隆的git存储库,使其与用--mirror克隆的存储库相匹配



这个问题与git不同-如何从其他repo镜像文件或如何更新我的裸repo?

既然用--mirror克隆的存储库是一个裸存储库,那么我能让用--bare克隆的存储库像用--mirror克隆的一样吗?可以通过简单地修改配置文件来完成吗?

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

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

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

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

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

如果使用git clone --mirror克隆您的回购,则git push --all将按照默认的matching推送策略将所有本地分支推送到远程回购。

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

git fetch secondRemoteRepo
git push --all secondRemoteRepo

如今:

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

然后

git fetch

最新更新