Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设置本地目录以镜像远程git存储库?_Git_Mirror_Acceleration - Fatal编程技术网

如何设置本地目录以镜像远程git存储库?

如何设置本地目录以镜像远程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

情况是这样的。我在服务器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 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获取源代码。“本地目录”用于测试此解决方案。