2023-11-05 05:00:00

Git服务器像GitHub?

我是一个长期的Subversion用户,将尝试Git。我读过一些关于它的文章,了解分布式的本质——我能看到很多好处。

然而,我确实喜欢中央服务器的想法,它可以承担备份、记录系统等的角色,同时仍然使用Git进行本地分支和共享。我不是在做一个开源项目,所以我不能使用Github(不付费),所以我的问题是:运行本地git服务器的最佳实践方式是什么?

我知道这可能违反了标准的Git使用模式,但它对我的项目很有用。然而,任何我可能忽略的担忧都是受欢迎的。

谢谢!


当前回答

如果您不介意使用命令行,那么在需要对不同存储库设置不同访问权限的公司环境中工作时,gitolite绝对是一种享受。这是@Chris提到的一种较新的胶质分裂症。

以下是作者网站上的摘要:

Gitolite lets you use a single user on a server to host many git repositories and provide access to many developers, without having to give them real userids on or shell access to the server. The essential magic in doing this is ssh's pubkey access and the authorized_keys file, and the inspiration was an older program called gitosis. Gitolite can restrict who can read from (clone/fetch) or write to (push) a repository. It can also restrict who can push to what branch or tag, which is very important in a corporate environment. Gitolite can be installed without requiring root permissions, and with no additional software than git itself and perl.

它有一个非常全面的功能集,但我非常喜欢的一点是,所有的日常配置编辑都是通过一个特殊的git存储库完成的。也就是说,添加用户只是

将用户添加到配置文件 添加用户的ssh密钥 提交更改 推到花岗石上 瞧,配置是实时的!

当需要通过浏览器查看代码时,gitolite支持与gitweb“同步”配置。或者如果你喜欢cgit,它是用C编写的git的一个非常好的web前端,那么你应该看看这个如何操作。

其他回答

Gitorious是一个开源的git web界面,你可以在自己的服务器上运行,就像github一样:

http://getgitorious.com/

更新:

http://gitlab.org/现在也是另一个选择。

更新2:

Gitorious现在加入了GitLab

如果你想要拉请求,有RhodeCode和GitLab的开源项目和付费的Stash

对于简单的设置,您可以提供对中央服务器的SSH访问,并设置每个用户的工作目录从这个“原点”进行推/拉。这对于小型团队来说是最简单和常见的设置。

你也可以看看gitosis,它给你一个http服务器,并能够远程管理它。这样,您就不必向每个提交者授予ssh访问权限和所有必需的内容。

与此同时,Mercurial托管网站Bitbucket也开始提供Git存储库。

所以如果你不需要本地服务器,只需要一些中心的地方,你可以免费托管私有Git存储库,我认为Bitbucket是最好的选择。

免费地,您可以获得无限的私有和公共Git和Mercurial存储库。 唯一的限制是在免费计划中,不能超过5个用户访问您的私有存储库(如果要更多,您必须付费)。 查看https://bitbucket.org/plans获取更多信息!

http://code.google.com/p/luna-tool/是scala应用程序,它实现了我需要的大部分github部分