目标:使用多个独立开发人员的Git+SSH将代码部署到生产web服务器,而不需要在服务器上进行任何后续的开发人员干预。我不想运行FTP,不想让SSH访问shell帐户,不想管理用户帐户(除了give )。
免责声明:我是git新手。
Git和gitolite安装在web服务器上,并在SSH上运行良好。Nginx文档根目录在/srv中。
我最初的设想是,git将创建包含实际文件的repos,我可以简单地创建从git repos到/srv的符号链接。
但事实并非如此,它似乎将“裸”代码库存储在/home/git/repositories中,而这些代码库并不包含可读代码(工作目录)。
我已经测试过可以使用像"git pull git@localhost: /srv“(如果用户运行命令有合适的键)和"git pull /home/git/repositories/somerepo”(避免联网+ SSH )这样的命令从/home/git本地克隆和拉取repos到somerepo。
因此,似乎在将代码更新推送到服务器之后,钩子(或黑客)可以将更新的repos从/home/git拉入/合并到/srv,并重新启动服务器。
这种方法是否合理,我是否遗漏了git/git的一些基本特性或功能,或者是否有更好的基于git的解决方案?如果git被证明是不可行的,rsync是我可能探索的另一种可能性。
发布于 2014-02-13 14:36:22
沸石是一种。没有更多,没有更少。
通过VREFS (Virtuals refs),你可以添加尽可能多的更新后钩子到那些由Gitolite管理的裸repos中,以便签出(和部署)所说的裸repo。
https://stackoverflow.com/questions/21746533
复制相似问题