如何将使用--bare克隆的git存储库更改为与使用--mirror克隆的git存储库匹配?

如何将使用--bare克隆的git存储库更改为与使用--mirror克隆的git存储库匹配?,git,version-control,git-push,Git,Version Control,Git Push,此问题与或不同 由于使用--mirror克隆的存储库是裸存储库,我是否可以将使用--bare克隆的存储库与使用--mirror克隆的存储库相同?可以通过简单地修改配置文件来完成吗 如果没有,是否有其他方法可以将裸存储库转换为镜像存储库 另一个问题,为什么我不能使用git push--镜像中的所有repo,而这个命令可以在裸repo中运行?如果您已经用克隆了repo,那么,后面的将把所有本地分支推送到远程repo 但是,如果您的远程repo已作为远程引用添加到本地repo(即您的本地repo已从另

此问题与或不同

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

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


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

如果您已经用克隆了repo,那么,后面的将把所有本地分支推送到远程repo

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

git fetch secondRemoteRepo
git push --all secondRemoteRepo

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

$ git config remote.origin.fetch "+refs/*:refs/*" 
$ git config remote.origin.mirror true
然后执行git fetch,所有内容都应该是最新的。

现在:

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

您可以在任何编辑器中编辑配置文件。只需按照镜像repo(+refs/*:refs/*)中的方式创建分支引用,移除远程跟踪分支(从打包的refs和refs/remote/*/*),添加
mirror=true
,然后重新运行
git fetch
@fork0这个琐碎的操作似乎不起作用……到底什么不起作用?错误消息?(顺便说一句,我没有在哪个部分提到要添加的
mirror=true
。它是
[core]
)。
git fetch