我是一个长期的Subversion用户,将尝试Git。我读过一些关于它的文章,了解分布式的本质——我能看到很多好处。
然而,我确实喜欢中央服务器的想法,它可以承担备份、记录系统等的角色,同时仍然使用Git进行本地分支和共享。我不是在做一个开源项目,所以我不能使用Github(不付费),所以我的问题是:运行本地git服务器的最佳实践方式是什么?
我知道这可能违反了标准的Git使用模式,但它对我的项目很有用。然而,任何我可能忽略的担忧都是受欢迎的。
谢谢!
我是一个长期的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前端,那么你应该看看这个如何操作。
其他回答
http://repo.or.cz,虽然相当好的倾向于一些用户的一些问题。
如果你是其中之一,我建议你试试http://unfuddle.com,因为你来自一个subversion背景。
查看“30秒之旅”:http://unfuddle.com/about/tour/plans
您可以设置一个ssh服务器并在那里运行一个中央存储库。然后,所有开发人员只需同意(作为策略问题)在完成提交时推送到服务器。这是我工作场所的使用模式。很像CVS和svn。
找到存放存储库的地方(例如/var/gitroot)。 创建一个新的repo (mkdir项目。Git && CD项目。Git && Git init——bare——shared=group)。 然后在您的客户端,克隆远程repo (git克隆ssh://yourserver.com/var/gitroot/project.git && cd项目) 添加一些文件(git添加README) git commit -m“初始导入” Push (git Push origin master)
这应该会为你做好准备。
你也可以安装Indefero,它是GoogleCode的GPL克隆,因为它同时支持Subversion和Git,你可以有一个平稳的过渡。我是Indefero的作者。
如果你只是想把你的存储库放在一个中心位置,使用Git这样的分布式版本控制非常容易: 你可以把你的中央存储库放在中央机器上的某个共享文件夹中,每个人都可以从那里克隆它。
如果您想在本地服务器上建立一个“真正的”网站,我知道Git托管网站http://repo.or.cz。 它的功能似乎比GitHub少,但与GitHub不同的是,你可以获得源代码并将其托管在自己的本地服务器上。
免责声明:我只读过关于回购。cz,我自己从来没有试过!
对于简单的设置,您可以提供对中央服务器的SSH访问,并设置每个用户的工作目录从这个“原点”进行推/拉。这对于小型团队来说是最简单和常见的设置。
你也可以看看gitosis,它给你一个http服务器,并能够远程管理它。这样,您就不必向每个提交者授予ssh访问权限和所有必需的内容。