如果文件由 root 用户和非 root 用户拥有,如何使用 git 管理文件版本?

如果文件由 root 用户和非 root 用户拥有,如何使用 git 管理文件版本?

我有 root 拥有的文件和目录中的其他文件,我想使用 git 对这些文件进行版本控制。是否可以对 root 和非 root 用户拥有的文件使用相同的 git repo,还是只会自找麻烦?

我做了一个简单的测试,我以普通用户身份创建了一个 repo,签入和签出了一些文件,并使用签入 root 拥有的文件sudo git addsudo git commit因为普通用户对这些文件没有读取权限。之后这些文件.git/index归 root 所有,普通用户无法运行 git add、git commit 等。

如果文件由 root 用户和非 root 用户拥有,建议采用什么方法来管理版本?

答案1

您可以使用core.sharedRepositorygroup设置要与组共享的存储库的权限。然后,在存储库的根目录及其下的每个目录上设置 setgid 位,并将每个文件和目录的组更改为每个用户(或至少是非 root 用户)所属的组。

这将确保 Git 将树中的所有文件写入与给定组共享权限,并且所有文件和目录的组都将是相同的:包含目录的组。

相关内容