0

我想知道是否可以为每个克隆的git 存储库设置服务器用户和组。

例如,如果存储库位于目录中:

/home/example/domains/example.com/public_html/

比用户是例子,组也是例子。但是当我通过终端克隆拉取(以 root 身份登录)时,文件将保存为root:root而不是example:example

什么是防止这种情况发生的最佳方法,而不必每次添加新文件时都使用chown 。

那么应该怎么办呢?

  1. 转到其他用户的目录,cd /home/example/您可以通过键入看到ls -all该目录中的所有文件都归用户示例和组示例所有。
  2. 转到 git 存储库或创建一个,在此示例中,我在/home/example/domains/example.com/public_html/.
  3. 在那里再次执行 ls 命令,你会注意到用户和组等于 root:root,但我不希望它应该是 example:example。

一个简单但手动的解决方案是。

chown -R example:example /home/example/domains/example.com/public_html/

只有我在寻找更动态的东西,它还必须与所有其他 git 命令(如 pull)一起使用,因为当您将新提交从存储库拉到本地时,它将归 root:root 所有。

4

1 回答 1

0

使用 切换到“示例”用户sudo -u。您需要在任何运行的钩子git pull中执行此操作。如果git pull没有运行任何钩子,我建议您阅读本指南关于使用 git 进行部署

Git 跟踪文件权限的可执行位,仅此而已。

一般来说,您应该避免以 root 身份运行这样的事情:没有理由不以专用 git 用户(或示例用户)身份推送,并且有很多理由不以 root 身份推送。

于 2014-11-03T12:59:08.460 回答