这可能是可以想象的最基本的git问题。
假设我开始一个项目并在我的VPS主机上为它创建一个Git存储库。
在SVN中,您可以运行SVN服务器,通过Apache服务SVN,通过ssh连接到repo。
Git的比喻是什么?我需要运行Git守护程序吗?是否有git://
协议?
或者在我的开发机器上运行$ git xyz
命令并通过ssh在引擎盖下进行通信?
(顺便说一句,我需要托管我自己的存储库.GitHub非常棒,不适合我的项目。)
如果重要,CentOS Linux和开发机器中的VPS机器是OS X.
答案 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-http-backend
')请参阅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