2014-02-13 82 views
1

目标:为多个独立开发人员使用Git + SSH将代码部署到生产Web服务器,而无需任何后续开发人员对服务器的干预。不想运行FTP,不想让SSH访问shell帐户,不想管理用户帐户(除了gitolite)。Gitolite作为代码部署系统

声明:我是git的新手。

Git和gitolite安装在Web服务器上并且通过SSH很好地运行。 Nginx的docroot目录在/ srv中。

我最初设想gitolite会创建包含实际文件的repos,并且我可以简单地创建从git repos到/ srv的符号链接。

但是,不,似乎gitolite在/ home/git/repositories中存储“裸”回购,其中不包含可读代码(工作目录)。

我测试过可以使用像“git pull git @ localhost:somerepo”这样的命令(如果用户运行命令有适当的键)和“git pull”在/ home/git本地从/ srv复制&/home/git/repositories/somerepo“(避免联网+ SSH)。

因此,在代码更新被推送到服务器后,挂钩(或破解)可能会将更新后的回购从/ home/git拖到/ srv并重新启动服务器。

这种方法是否理智,我错过了git/gitolite的一些基本功能或功能,还是有更好的基于git的解决方案?如果git证明不可行,rsync是我可能探索的另一种可能性。

回答

0

Gitolite是authorization layer。没有更多,没有更多。

通过VREFS (Virtuals refs),您可以添加尽可能多的更新后挂钩到由Gitolite管理的裸露回购站,以便签出(并部署)裸露回购。