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

thi*_*365 8 git version-control git-push

这个问题与git不一样- 如何从其他仓库镜像文件如何更新我的裸仓库?

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

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

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

oni*_*ake 12

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

$ git config remote.origin.fetch "+refs/*:refs/*" 
$ git config remote.origin.mirror true
Run Code Online (Sandbox Code Playgroud)

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


Von*_*onC 2

如果您使用 克隆了您的存储库git clone --mirror,则git push --all遵循默认matching推送策略 的a会将所有本地分支推送到远程存储库。

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

git fetch secondRemoteRepo
git push --all secondRemoteRepo
Run Code Online (Sandbox Code Playgroud)