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

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

如果我将其与 Web 服务器的托管进行类比,我会说 git 的数据应该在 中/var/git,因此我的 git 存储库应该在/var/git/myrepo

:这是正确的猜测吗?

答案1

这里没有正确或错误的答案,除非是由您的个人宗教信仰和hier(7)系统手册页的内容决定的。

典型的 Linuxhier手册页典型的 BSDhier手册页

/var/git/*我个人觉得这很合理。这就是我保留的。

答案2

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

/srv目录适用于系统提供的特定站点数据. 从标准来看:

指定此项的主要目的是让用户可以找到特定服务的数据文件的位置,并让需要单个树来存放只读数据、可写数据和脚本(如 cgi 脚本)的服务可以合理放置。只有特定用户感兴趣的数据才应放在该用户的主目录中。

命名子目录的方法/srv尚未指定,因为目前尚未就如何命名达成共识。一种在 下构造数据的方法/srv是使用协议,例如ftprsyncwww和。在大型系统中,按管理上下文cvs构造会很有用,例如、等。此设置因主机而异。因此,没有程序应该依赖于 的特定子目录结构或必须存储在 中的数据。但是,应始终存在于符合 FHS 的系统上,并应将其用作此类数据的默认位置。/srv/srv/physics/www/srv/compsci/cvs/srv/srv/srv

分发必须注意不要在未经管理员许可的情况下删除这些目录中本地放置的文件。


在启用了 SELinux 的系统上,默认目录是/var/www/git,并且 repos 应该位于其子目录中。或者,您可以使用例如/srv/git将文件上下文设置为等效的:

semanage fcontext -a -e /var/www/git /srv/git

答案3

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

答案4

在我的 Arch Linux 上,我/srv/http安装了 apache(这是系统默认设置),我也将它用作我的 node.js http 服务器。同样,我决定将所有 git 存储库都放在 中/srv/git

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

最终还是由你决定。我发现坚持使用与发行版中其他服务类似的格式很容易记住。

相关内容