公司中的 Git - 自托管服务器

7

我要向一个10人编程团队介绍Git,他们目前使用Visual Source Safe。

他们需要在公司内部托管Git服务器。可以选择Windows或Linux操作系统。目录身份验证使用Novell eDirectory。

他们需要一些细粒度的安全措施来限制谁可以向中央服务器推送代码。

发件人:

https://stackoverflow.com/questions/923130/what-type-of-git-server-do-you-use-or-how-do-you-use-git

也许可以采取以下工作流程:
  • 在服务器上设置10个用户。
  • 设置一个公共目录,让这10个用户有写入权限。
  • 通过SSH将文件推送到服务器,例如git push dave@test.com:user1/project.git。
  • 但是我需要安装密钥在服务器上。
问题: 有人在公司成功使用这样的工作流吗?有哪些方法可行?这似乎大多数人都使用带GitHub等的Git...。

[编辑]: 请参见选择源代码控制系统:VSS之后的逻辑步骤。也许Git不适合这个团队。


4
步骤1:不要将“git”全部大写。:/ 它不是首字母缩略词,只是一个单词。 - Dustin
1
根据我的经验,我想提出一点建议...考虑使用Mercurial代替。它更适合Windows环境。 - Robert S.
7个回答

8
可以使用带有访问控制的自托管git仓库。通常做法是在服务器上创建一个名为git的账户,将该账户的shell设置为git-shell,这是一种专门为git设计的受限shell,然后将每个授权用户的公钥放入git-user的.ssh/authorized_keys文件中。http://blog.commonthread.com/2008/4/14/setting-up-a-git-server提供了大部分其他详细信息。

非常感谢Dav。我尝试了这个,很快就搭建好了一个服务器! - Dave Mateer
链接挂了 :( 有人有这篇文章的副本吗? - fnaquira

4
我们使用gitosis来让开发者进行推送和拉取操作。请查看 gitosis

4

这基本上是我使用的技术。为每个人设置账户和密钥很麻烦,但只需要做一次。

如果你将事情安排得当,你可以在git://whatever或http://whatever上拥有只读存储库,并在git+ssh://whatever上拥有可写存储库。

编辑:gitosis看起来非常不错,尽管您可能随时想为所有开发人员设置单独的帐户。


2
世界已经发生了很大的变化,我认为 http://gitblit.com/ 是目前最好的解决方案之一(取决于您的要求):
  • 可以仅使用HTTPS轻松设置。
  • 与公司LDAP集成。
  • 允许定义组/团队,并对存储库进行细粒度的访问控制。
  • 是开源的,因此安装成本较低(与Github和其他平台相比)。

因此,如果您不想为每个团队都拥有一个新服务器,这确实是一个选项。我们很喜欢它!


感谢更新。Gitblit有适用于Windows、Linux和Servlet容器的安装程序。我在Solaris上的Tomcat中部署了gitblit.war。界面美观,运行良好。发现一个缺点:它不能与我们公司范围内的Active Directory服务器集成。 - Gerrit Brouwer
我们已经将GitBlit连接到了公司范围内的Active Directory,我会问一下运维人员是如何实现的。然后我会将这些信息添加到答案中。 - mliebelt
与此同时,我成功找到了我们公司广泛使用的LDAP服务器的正确设置。然而,如果有预定义的设置,就像Jenkins的ActiveDirectory插件一样,只需要配置公司域名,那么这个过程本可以更简单些。 - Gerrit Brouwer

1

如果您想自己运行Git,那么有很多Git管理GUI可供选择。例如gitorious

至于身份验证需求,大部分都取决于您自己。您可能会发现很难让ssh遵循您首选的身份验证技术(上次我做类似的事情时,我修改了ssh以从LDAP中读取密钥)。

Web界面可以按照您的意愿进行设置。不过,我可能会将其保持在内部网络中开放状态。


0
我很惊讶没有人提到开源项目gogs:http://gogs.io,它基本上提供了与gitlab相同的功能(不包括Wiki、代码审查、代码片段),但系统资源占用非常小,非常适合在树莓派等设备上运行。安装和维护也更加简单。

-1

我有点担心建议您使用git作为版本控制系统。 Visual Source Safe是微软产品中最典型的,而git则完全相反,在Windows上几乎无法正常运行。

TortoiseGit,一个适用于Windows的git界面现已推出。这缓和了我的原始回答,因为我认为对于大多数Windows开发人员来说,拥有GUI访问源代码控制系统非常重要。


我同意,并进一步建议使用Bzr,它在Windows上也被认为工作得很好。 - Russell Mull
5
Visual Source Safe在任何操作系统上都是一个很差劲的版本控制系统,而我在Windows上使用git,运行得非常好。我不了解Mercurial,所以我不会批评它,但是git...哇,它真是太棒了! - Andrew Arnott
是的,Git非常棒,但不那么出色的开发者是否有时间去掌握它呢? - brianegge
请看我在顶部的编辑。我已经提出了另一个关于brianegge所说内容的SO问题。 - Dave Mateer
现在几年后,我发现Git在Windows上运行良好,而Git扩展有助于弥合剩余差距。 - Thorbjørn Ravn Andersen
2
请记住,VSS是在1994年发布的,而Git是在11年后的2005年发布的。当然,Git更好。即使那些肩膀在一个应该腐烂的尸体上,Git也站在了VSS的肩膀上。 - PatrickV

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接