将git信息库存储在Linux文件系统树中的常规位置在哪里?


Answers:


31

除了您自己的个人宗教信仰和hier(7)系统上的联机帮助内容所规定的答案之外,此处没有对与错的答案。

典型的Linux手册hier ; 典型的BSD手册hier

/var/git/*就我个人而言似乎很合理。那是我留下的地方。


3
同样,在Arch Linux中,apache的文件夹是/ srv / http(而不是像其他发行版的/ var / www),所以我将git的内容放到/ srv / git中。
trusktr 2014年

/ var /下的某个地方似乎是合理的,但也请参见下面的Denis R的答案:serverfault.com/a/433584/45819-他有充分的理由将其放入/ var / lib / git中
麻省理工学院

30

将其放在下的目录(或共享文件系统)中/srv。这就是它的目的。

/srv目录用于存储系统提供的特定站点的数据。从标准:

指定它的主要目的是使用户可以找到特定服务的数据文件的位置,并可以合理地放置需要单个树的只读数据,可写数据和脚本(例如cgi脚本)的服务。仅特定用户感兴趣的数据应放在该用户的主目录中。

/srv未指定用于命名的子目录的方法,因为目前尚无关于应如何实现的共识。一种用于构造数据的方法/srv是通过协议,例如。ftprsyncwww,和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

5
/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>

几乎像《 Pro Git》一书中所推荐的那样:git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server
exic

1

正如voretaq7所说,在这个问题上没有对与错的答案。但是,如果要遵循软件,则似乎数据库软件将其数据存储在

/var/lib/soft

例如,对于在debian上的Postgresql 9.1,文件夹为

/var/lib/postgresql/9.1/

所以我会个人选择

/var/lib/git

1

这完全取决于您。不过,理想情况下,您应该将git数据目录放置在单独的分区甚至磁盘上,以使系统升级等操作变得更加容易。当然,您必须确保有足够的磁盘空间可用。


1

在我的Arch Linux上,我使用/srv/http了Apache(这是系统默认值),我也将它用于我的node.js http服务器。同样,我决定只将所有git存储库放入/srv/git

我使用的是GitLab,/srv/git在这种情况下,它也是git的主文件夹。

最终,取决于您。我发现坚持使用与发行版中其他服务类似的格式很容易记住。


0

如果您使用某个前端进行git,请随您的发行版打包的前端一起放置。其他任何事情都只会造成不必要的不​​兼容性。


1 /我没有使用git进行前端2 / Git并没有建议在哪里放置git仓库...执行git init的任何文件夹都是git仓库。
塞缪尔·罗西耶

1 /在前端,我会假设git服务器为仓库提供服务。2 /任何此类服务器,即使仅使用HTTP服务器也将具有默认位置。当然,我们谈论的是托管位置,当您使用代码时,.git主要位于项目内部。
hultqvist 2014年

0

首先,关于使用/ srv的建议,您假设所有git存储库都用于网站。对您来说可能是对的,但您可能拥有一个不是网站的软件。

其次,通过将代码存储库存储在/ var / www / html或/ srv / html之外,您将获得两个不错的好处。您可以在任何级别上创建符号链接到您的仓库中,从而更容易隐藏您的库。另外,如果存储库的位置发生了根本变化,则无需修改虚拟主机配置。相反,您只需调整符号链接。

我使用的是/ var / repo,但我认为/ var / git更好,并且将从现在开始使用。


0

当我为了维护站点配置而下载git repos时,我将其存储在

/ data / repos / $ REPO_GROUP_OR_USER / $ REPO_NAME

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.