linux - Git 服务器挫败感(Gitosis、Gitolite 等)

标签 linux git gitosis gitolite

请原谅我的沮丧情绪,因为我已多次尝试正确设置此设置但无济于事(可能且最有可能是由于我的无知,但也可能是由于缺乏全面和简明的文档)。

我正在尝试设置一个 git 服务器,以便我可以在一小群开发人员之间共享代码。每个开发人员可以从多个客户端 PC 进行连接。我过去来自 MS,所以我对开发工具集有点被宠坏了,但如果我能得到类似于 TFS 的东西就太棒了。

当尝试设置 gitosis(我知道这在 git 社区中已弃用 https://serverfault.com/questions/225495/ubuntu-server-gitosis-user-naming-convention )或 gitolite 时,似乎我一设置它就必须非常小心,因为似乎一切都是在牙签上保持平衡。

我最近尝试设置一个 git 服务器包括将我的公钥 (benny.pub) 从我的笔记本电脑移动到服务器,使用该公钥设置所有内容并下 pull 配置以设置 repo 和权限。然后我意识到我想在另一台 PC 上开发,所以我创建了一个新 key (benny@desktop.pub) 并将 benny.pub 重命名为 benny@laptop.pub,这显然把事情搞砸了。这是我通过更改名称知道自己很愚蠢的地方。

经过长篇大论的描述后,我的问题是:如何设置一个坚固的自托管 git 服务器,使其能够让多个开发人员从多台机器登录,同时保持安全等?必须有一种经过验证的技术(gitolite 描述了可能有 4-5 种不同的方式......也令人沮丧)才能做到这一点,因为我确信我不是唯一一个试图做同样事情的人。也许 git 不适合我的团队?

非常感谢任何帮助!

最佳答案

根据我的经验,您只需要一个带有单个 git 帐户/登录名的 SSH 服务器,您可以使用其中一个公钥连接到该服务器。使用 SSH 安装 gitolite(将 gitloite 从您的客户端复制到服务器并进行基本设置)并让您的开发人员向您发送他们的公钥。将这些 key 添加到您的 ~ 中的 gitolite-admin 存储库中并 push 。

为什么开发人员一开始就需要多个 key 对,即使使用了多台机器?这种情况既不会影响 SSH 处理身份验证的方式,也不会影响 gitolite 如何处理授权:它们仍然是 SSH key 。

  • 如果开发人员必须使用多个 key 对(一个用于 git,另一个用于其他服务器),让他们处理复杂性并建议他们在 ~/.ssh/config 中创建一个条目对于他们使用的每个 key 对/服务器组合。

  • 如果开发人员在每台机器上使用不同的 key 对,gitolite 组可以组合多个公钥:

@agross = agross-1 agross-2

关于linux - Git 服务器挫败感(Gitosis、Gitolite 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5607479/

相关文章:

linux - Makefile - 每次编译所有文件

linux - 可执行文件在Linux上删除自身

linux - 使用 ls 以位为单位的文件大小?

git - 如何将本地 Git 存储库(具有历史记录)移至远程服务器上由 Gitosis 管理?

linux - Cygwin binutils 配置缓存不正确

git - Git 和 GitHub Desktop 是完全独立的应用吗?

node.js - npm 安装在多域 git 存储库上失败

Git:如何在发生更多提交后纠正错误的 merge ?

即使给出了公钥,Gitosis 也需要密码

gitsosis, redmine, 乘客 : 'not a git repository' error