将 git 存储库共享到一台无法访问互联网的机器
sharing a git repository to a machine that does not have internet access from one that has
我有这个设置
machineA -> remote server with a repo.git initialized with --bare
machineB -> client that can access to internet and clone repo.git, so it locally will have repo
machineC -> connected in LAN with machineB and no internet access
目标是使 machineC 与 machineB 存储库一起工作(以只读模式),就好像它是远程存储库一样。因此,machineB 定期从远程服务器
进行 git 获取
我正在通过 SMB 共享本地 machineB 存储库,我可以从 machineC 克隆它。
问题是我只能获取 master 分支或只能获取我在 machineB 上的本地分支,而不是 machineA 上的所有分支。
是否有任何命令可以在本地获取所有内容或将存储库转换为 .git 一个?
干杯
在machineB中,从machineA做一个镜像克隆
git clone --mirror /url/to/machineA/repository
在machineC中,从machineB中的镜像仓库克隆
git clone /url/to/machineB/repository
当machineC仓库需要machineA的最新数据时,先更新machineB的镜像仓库
git remote update
然后更新 machineC 中的存储库
git fetch
The issue is that I am just be able to get the master branch or only
the local branches I have on machineB, not all the branches present on
machineA.
在您目前的情况下,您仍然可以通过
获取machineC存储库中的所有分支和标签
git fetch origin refs/remotes/origin/*:refs/remotes/origin/* refs/tags/*:refs/tags/*
但它不自然且令人困惑。通过将 machineB 仓库从 non-bare 仓库变成镜像仓库,我们可以在 machineC 仓库中使用熟悉的命令。
我有这个设置
machineA -> remote server with a repo.git initialized with --bare
machineB -> client that can access to internet and clone repo.git, so it locally will have repo
machineC -> connected in LAN with machineB and no internet access
目标是使 machineC 与 machineB 存储库一起工作(以只读模式),就好像它是远程存储库一样。因此,machineB 定期从远程服务器
进行 git 获取我正在通过 SMB 共享本地 machineB 存储库,我可以从 machineC 克隆它。
问题是我只能获取 master 分支或只能获取我在 machineB 上的本地分支,而不是 machineA 上的所有分支。
是否有任何命令可以在本地获取所有内容或将存储库转换为 .git 一个?
干杯
在machineB中,从machineA做一个镜像克隆
git clone --mirror /url/to/machineA/repository
在machineC中,从machineB中的镜像仓库克隆
git clone /url/to/machineB/repository
当machineC仓库需要machineA的最新数据时,先更新machineB的镜像仓库
git remote update
然后更新 machineC 中的存储库
git fetch
The issue is that I am just be able to get the master branch or only the local branches I have on machineB, not all the branches present on machineA.
在您目前的情况下,您仍然可以通过
获取machineC存储库中的所有分支和标签git fetch origin refs/remotes/origin/*:refs/remotes/origin/* refs/tags/*:refs/tags/*
但它不自然且令人困惑。通过将 machineB 仓库从 non-bare 仓库变成镜像仓库,我们可以在 machineC 仓库中使用熟悉的命令。