git - Git 服务器与用户之间的复制服务

标签 git version-control

我正在做一个项目来申请Git作为新的 SCM 解决方案。我了解 Git 的一些原理,但我对这项技术没有什么经验。

为了减少网络流量,在局域网中拥有远程存储库的单个副本似乎是合理的,而不是每次开发人员需要访问新内容时总是离开网络。

因此我想知道在开发人员和 Git 中央实例之间是否有任何 Git 中介服务可以充当“门面”服务器或复制服务。

问题

  1. Git 有那种功能吗?是否有执行此操作的插件?
  2. 如果存在这样的功能,使用它的常见陷阱是什么?
  3. 您对增加这一层复杂性有何看法?这是个好主意吗?
  4. 如果 Git 不支持它开箱即用,还有哪些其他替代方案可以实现这一点?

下图有助于说明我的观点。 “假设的 Git 复制”是复制服务的名称,我不知道它是否存在。

enter image description here

如果需要更多信息,请询问,以便我可以正确更新我的问题。

最佳答案

是的,确实如此,或者更确切地说,有一个系统可以做到这一点:Gerrit , 和 Gerrit replication plugin

如果您的 LAN 包含 Gerrit 管理的存储库,则该存储库可以复制到一个或多个远程存储库。

我之所以知道那个插件是因为 Episode 30 of GitMinutes ,其中详细说明了 [in]famous force push of 186 Jenkins repositories to GitHub (参见“Use the force, Lucas”)。

当时(2013 年 11 月),该插件的默认设置是强制推送 (git push --f)。那真的不安全;)

关于git - Git 服务器与用户之间的复制服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24515488/

相关文章:

svn - 我可以删除我的 Assembla 帐户中的文件夹和文件吗?

flash - Adobe Flash 项目的版本控制

git - 在github上追溯一个项目

git - 使用 shell 脚本更改 *n* 次提交的 git 历史记录(提交日期)

git - 列出在 Travis 中的 pull 请求中修改的文件

version-control - 可配置软件的分支策略

python - 如何获取 python 依赖项/模块的版本,包括通过 subprocess.Popen 调用的外部应用程序?

css - 将 CSS 部署与站点的其余部分分开

git - 有没有办法恢复在 rebase 期间意外跳过的提交?

git - 提取 git 子目录,同时通过重命名保留历史记录