你用什么样的服务器来托管Git存储库?

时间:2011-08-24 14:10:13

标签: git

这可能是可以想象的最基本的git问题。

假设我开始一个项目并在我的VPS主机上为它创建一个Git存储库。

在SVN中,您可以运行SVN服务器,通过Apache服务SVN,通过ssh连接到repo。

Git的比喻是什么?我需要运行Git守护程序吗?是否有git://协议?

或者在我的开发机器上运行$ git xyz命令并通过ssh在引擎盖下进行通信?

(顺便说一句,我需要托管我自己的存储库.GitHub非常棒,不适合我的项目。)

如果重要,CentOS Linux和开发机器中的VPS机器是OS X.

3 个答案:

答案 0 :(得分:3)

托管git repo的最简单方法是使用ssh。

在您的服务器上,使用以下命令创建一个空存储库:

cd my_project_folder
git init --shared --bare
在您的开发机器上

,克隆空存储库并开始使用它。

git clone username@myserver:my_project_folder

其中username是您的ssh用户名,myserver是您的服务器主机。

现在你有了一个存储库的副本,添加你的文件并进行第一次提交,例如。

cd my_project_folder
touch README
git add README
git commit -m'Initial Commit'
git push origin master # push to your server

如果您查看.git/config文件,您会看到自动设置了一个“远程”主机,指向您的服务器。

答案 1 :(得分:2)

如果您有远程机器的共享路径访问权限,那就足够了! 一个简单的USB key can be enough,远程仓库作为一个文件(“捆绑”)。

但是如果你有一个真正的远程服务器,那么你需要一个进程来监听你的git操作:

请参阅Git protocols in the Pro Git Book

Gitolite project仅适用于authorization (not authentication) 本身,它不会监听任何请求(它可以在ssh之上插入,也可以从Apache配置中调用)。
Gitolite将允许您避免需要完整的交互式ssh会话,过滤所有命令并仅允许与git相关的命令,用于具有必要权限的存储库。

答案 2 :(得分:1)

在工作中,我们使用Gitolite作为私人git托管服务。

它的作用是创建一个可以在内部通过ssh访问的简单服务器。基本上,要访问远程存储库,您可以这样做:

git clone gitolite @ servername:project_name

我可以在git上推荐这个免费的在线书籍:www.progit.org,特别是gitolite部分:http://progit.org/book/ch4-8.html