如何设置本地目录以镜像远程git存储库?
情况是这样的。我在服务器a上有一个远程git存储库。此外,我必须在桌面B上使用此存储库中的相同源代码。由于访问服务器A的带宽有限,我想在桌面B上为存储库设置一个本地镜像 现在,我已通过设置镜像存储库如何设置本地目录以镜像远程git存储库?,git,mirror,acceleration,Git,Mirror,Acceleration,情况是这样的。我在服务器a上有一个远程git存储库。此外,我必须在桌面B上使用此存储库中的相同源代码。由于访问服务器A的带宽有限,我想在桌面B上为存储库设置一个本地镜像 现在,我已通过设置镜像存储库 git clone --mirror https://repository-on-server-a /local/repo/path.git git clone file://localhost/local/repo/path.git 我已通过测试本地存储库 git clone --mirror
git clone --mirror https://repository-on-server-a /local/repo/path.git
git clone file://localhost/local/repo/path.git
我已通过测试本地存储库
git clone --mirror https://repository-on-server-a /local/repo/path.git
git clone file://localhost/local/repo/path.git
然后我修改了crontab来做
cd /local/repo/path git fetch -q
每5分钟同步一次。它工作得很好
一开始,我在考虑使用
git config --global url.file://localhost/local/repo/path.git.insteadOf https://repository-on-server-a
让git从本地目录而不是远程repo获取所有对象。但是,它不起作用
我的问题是
有没有一种简单的方法可以为远程git回购设置这样的本地镜像?
如何处理“git推送”?既然insteadOf会将每次推送到本地目录,我如何将所有更改推回到服务器A?
本地目录用于测试,但不是最终解决方案。稍后我将使用另一个桌面C从桌面B获取源代码。另一位同事也将加入我的行列。这意味着我们希望将所有更改放在Desktop B中,以便为我们提供一些“以中心为中心”的解决方案。镜像用于什么?您的本地git工作目录已经是源存储库的镜像;这就是DVCSE的工作原理。我不明白在您的文件系统上使用第二个本地副本的好处 编辑 如果您想使用其中一个repo作为本地网络收集点,以便在网络的其余部分和上游原点之间进行更改,那么cron作业就可以了。只要让它在取a后做一个推镜就行了
但是,我不会为代理/别名设置而烦恼。只需让每个人都从本地镜像复制并推送到本地镜像即可;这样一来,如果他们出于某种原因需要找到真正的来源,就不会受到阻碍。他们甚至可以将两个URL都设置为远程URL,默认情况下使用本地URL,如果需要,还可以通过远程名称使用真实URL。镜像用于什么?您的本地git工作目录已经是源存储库的镜像;这就是DVCSE的工作原理。我不明白在您的文件系统上使用第二个本地副本的好处 编辑 如果您想使用其中一个repo作为本地网络收集点,以便在网络的其余部分和上游原点之间进行更改,那么cron作业就可以了。只要让它在取a后做一个推镜就行了
但是,我不会为代理/别名设置而烦恼。只需让每个人都从本地镜像复制并推送到本地镜像即可;这样一来,如果他们出于某种原因需要找到真正的来源,就不会受到阻碍。他们甚至可以将两个URL都设置为远程URL,默认情况下使用本地URL,如果需要,还可以通过远程名称使用真实URL。Yeah似乎是在重新发明轮子。本地目录用于测试。我在描述中没有提到的最后一步是,我将使用另一台计算机桌面C从桌面B获取源代码。“本地目录”用于测试此解决方案。是的,看起来像是重新发明轮子。本地目录用于测试。我在描述中没有提到的最后一步是,我将使用另一台计算机桌面C从桌面B获取源代码。“本地目录”用于测试此解决方案。