gpt4 book ai didi

git - 双向 git 镜像

转载 作者:行者123 更新时间:2023-12-03 17:52:07 25 4
gpt4 key购买 nike

我有兴趣将本地 git 存储库设置为远程存储库的镜像。我已经阅读了一些可能相关的帖子,但主要区别在于我需要对两个存储库进行读写访问。
大多数时候,用户会针对 Repo A 工作,但是有时他们会针对 Repo B 工作,并且这些需要通过服务器到服务器的流量保持同步。
这里最好的方法是什么?
由于这可能会使情况复杂化,我将添加一个注释。在此环境中,开发人员在主存储库之间切换的理想方式是通过 /etc/hosts 更改存储库的 IP 地址。 - 例如Repo A 在办公室时称为“gitserver”,Repo B 在远程时称为“gitserver”。

最佳答案

(免责声明:我知道这个问题发布已有 7 年历史,但由于我不知道的原因,它出现在我的 StackOverflow 问题列表的顶部)

I'm interested in setting up a local git repo to be a mirror of a remote repo.


好的...

I've read a few potentially related posts


什么帖子?

however the key difference is that I need read-write access on both repos


为什么您没有对这两个存储库的读/写访问权限?请不要将 git 与 GitHub 等 Git 托管服务混淆,并注意 git 没有任何内置权限系统 - 安全性由您的“git 服务器”和使用的基础设施提供 - 并且有周围有各种各样的 git 服务器产品(从本地 GitHub Enterprise 和 Microsoft Team Foundation Server,到通常在 SSH 之后运行的默认收件箱 gitserver(它是为您处理身份验证的 SSH)。您还可以托管一个 git repo通过 SMB(又名 Windows 文件共享)。

Most of the time, users will work against Repo A, however there will be times when they're working against Repo B, and these need to stay in sync via server-to-server traffic.


作为前言,请记住 git 是一个去中心化系统,不需要任何规范的存储库。
我假设您的意思是用户将同时使用 RepoA 和 RepoB(而不是每个人在某些日子只使用 RepoA,然后在其他日子只使用 RepoB)。在这种情况下,每隔几分钟就有一个 cron 作业到 fetch 并且每次更新新分支时都有一个 push 钩子(Hook)将起作用。

What's the best approach here?


很难给出细节,因为您仍然没有提供很多细节(例如,这两个主机如何通信?是否需要可怕的 VPN 客户端/系统,或者它们是否通过开放的 Internet 进行通信?您是否考虑过使用商业 git像 GitHub 和 GitLab 之类的托管服务可以用作中间服务?等等?

The ideal way in this environment for devs to switch between master repos is to change the IP address of the repo via /etc/hosts - e.g. Repo A is called "gitserver" when in the office and Repo B is called "gitserver" when remote.


确认。不,不要那样做!让您的用户 将两个存储库作为单独的远程 添加到他们的本地存储库,并给他们一个小的 shell 脚本或宏,将 git push 转换为对所有当前可用存储库的推送。
...您的开发人员确实有本地(计算机上)存储库,对吗?我希望您没有在某种多用户模式下使用集中托管的 git 存储库?如果是这样,那么您使用 git 非常非常错误。

关于git - 双向 git 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18780746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com