如果我以托管Web服务器为例,我会说git的数据应该在中/var/git
,所以我的git存储库将在/var/git/myrepo
问:那是正确的猜测吗?
如果我以托管Web服务器为例,我会说git的数据应该在中/var/git
,所以我的git存储库将在/var/git/myrepo
问:那是正确的猜测吗?
Answers:
除了您自己的个人宗教信仰和hier(7)
系统上的联机帮助内容所规定的答案之外,此处没有对与错的答案。
典型的Linux手册hier
页 ; 典型的BSD手册hier
页)
/var/git/*
就我个人而言似乎很合理。那是我留下的地方。
将其放在下的目录(或共享文件系统)中/srv
。这就是它的目的。
指定它的主要目的是使用户可以找到特定服务的数据文件的位置,并可以合理地放置需要单个树的只读数据,可写数据和脚本(例如cgi脚本)的服务。仅特定用户感兴趣的数据应放在该用户的主目录中。
/srv
未指定用于命名的子目录的方法,因为目前尚无关于应如何实现的共识。一种用于构造数据的方法/srv
是通过协议,例如。ftp
,rsync
,www
,和cvs
。在大型系统中它可以是有用的结构/srv
由行政上下文,诸如/srv/physics/www
,/srv/compsci/cvs
等这种设置将从主机到主机不同。因此,任何程序都不应依赖/srv
现有的特定子目录结构或必须存储在中的数据/srv
。但是,/srv
应始终在符合FHS的系统上存在,并应被用作此类数据的默认位置。未经管理员许可,发行版必须注意不要删除这些目录中的本地文件。
在启用SELinux的系统上,默认目录为/var/www/git
,存储库应位于其子目录中。或者,您可以使用例如/srv/git
将文件上下文设置为等效:
semanage fcontext -a -e /var/www/git /srv/git
/home/git/
乍一看似乎有点不合常规,但这是非常合理的,因为在您执行操作时会为您创建该目录(具有正确的权限)sudo useradd git
。您可以只切换到git用户,cd
然后立即运行:
$ mkdir .ssh; chmod 700 .ssh
$ touch .ssh/authorized_keys; chmod 600 .ssh/authorized_keys
并将对等方的公钥放入刚刚创建的authorized_keys文件中。
在您git init --bare
完成项目后,“ URL”就是……等待它……
git@<server>:<project>
如果您使用某个前端进行git,请随您的发行版打包的前端一起放置。其他任何事情都只会造成不必要的不兼容性。
首先,关于使用/ srv的建议,您假设所有git存储库都用于网站。对您来说可能是对的,但您可能拥有一个不是网站的软件。
其次,通过将代码存储库存储在/ var / www / html或/ srv / html之外,您将获得两个不错的好处。您可以在任何级别上创建符号链接到您的仓库中,从而更容易隐藏您的库。另外,如果存储库的位置发生了根本变化,则无需修改虚拟主机配置。相反,您只需调整符号链接。
我使用的是/ var / repo,但我认为/ var / git更好,并且将从现在开始使用。