我是一个长期的Subversion用户,将尝试Git。我读过一些关于它的文章,了解分布式的本质——我能看到很多好处。
然而,我确实喜欢中央服务器的想法,它可以承担备份、记录系统等的角色,同时仍然使用Git进行本地分支和共享。我不是在做一个开源项目,所以我不能使用Github(不付费),所以我的问题是:运行本地git服务器的最佳实践方式是什么?
我知道这可能违反了标准的Git使用模式,但它对我的项目很有用。然而,任何我可能忽略的担忧都是受欢迎的。
谢谢!
我是一个长期的Subversion用户,将尝试Git。我读过一些关于它的文章,了解分布式的本质——我能看到很多好处。
然而,我确实喜欢中央服务器的想法,它可以承担备份、记录系统等的角色,同时仍然使用Git进行本地分支和共享。我不是在做一个开源项目,所以我不能使用Github(不付费),所以我的问题是:运行本地git服务器的最佳实践方式是什么?
我知道这可能违反了标准的Git使用模式,但它对我的项目很有用。然而,任何我可能忽略的担忧都是受欢迎的。
谢谢!
当前回答
如果你只是想把你的存储库放在一个中心位置,使用Git这样的分布式版本控制非常容易: 你可以把你的中央存储库放在中央机器上的某个共享文件夹中,每个人都可以从那里克隆它。
如果您想在本地服务器上建立一个“真正的”网站,我知道Git托管网站http://repo.or.cz。 它的功能似乎比GitHub少,但与GitHub不同的是,你可以获得源代码并将其托管在自己的本地服务器上。
免责声明:我只读过关于回购。cz,我自己从来没有试过!
其他回答
与此同时,Mercurial托管网站Bitbucket也开始提供Git存储库。
所以如果你不需要本地服务器,只需要一些中心的地方,你可以免费托管私有Git存储库,我认为Bitbucket是最好的选择。
免费地,您可以获得无限的私有和公共Git和Mercurial存储库。 唯一的限制是在免费计划中,不能超过5个用户访问您的私有存储库(如果要更多,您必须付费)。 查看https://bitbucket.org/plans获取更多信息!
对于简单的设置,您可以提供对中央服务器的SSH访问,并设置每个用户的工作目录从这个“原点”进行推/拉。这对于小型团队来说是最简单和常见的设置。
你也可以看看gitosis,它给你一个http服务器,并能够远程管理它。这样,您就不必向每个提交者授予ssh访问权限和所有必需的内容。
Gitorious是一个开源的git web界面,你可以在自己的服务器上运行,就像github一样:
http://getgitorious.com/
更新:
http://gitlab.org/现在也是另一个选择。
更新2:
Gitorious现在加入了GitLab
你也可以安装Indefero,它是GoogleCode的GPL克隆,因为它同时支持Subversion和Git,你可以有一个平稳的过渡。我是Indefero的作者。
它可能不是最常见的git服务器设置,但在尝试了不同的布局、工具、镜像和权限方案后,我想说,对于企业存储库来说,Gerrit是一个相当可靠的替代方案,这可能看起来令人惊讶,因为它更广为人知的是一个代码审查工具。我们开始使用它作为代码审查,它慢慢成为我们的主要存储库,弃用g3/gitolite
It is straightforward to deploy (you basically drop the .war in a tomcat) has a web ui to manage repositories, groups and permissions (or a ssh cli) has a built-in java ssh and git implementation, so you have nothing else to set up ldap support for users and groups (usually a must for companies) a very flexible permission system (with project groups, permission inheritance, restricting read/write/branching/unreviewed writes/etc) code review capabilities (if you're into that thing) repo mirroring (to push some repositories to github or other public repo)
此外,它被用于大型项目(如android, chrome),所以它的规模,现在是相当坚实的。如果您想绕过代码审查部分,只需给您的用户PUSH权限。