我有 root 拥有的文件和目录中的其他文件,我想使用 git 对这些文件进行版本控制。是否可以对 root 和非 root 用户拥有的文件使用相同的 git repo,还是只会自找麻烦?
我做了一个简单的测试,我以普通用户身份创建了一个 repo,签入和签出了一些文件,并使用签入 root 拥有的文件sudo git add
,sudo git commit
因为普通用户对这些文件没有读取权限。之后这些文件.git/index
归 root 所有,普通用户无法运行 git add、git commit 等。
如果文件由 root 用户和非 root 用户拥有,建议采用什么方法来管理版本?
答案1
您可以使用core.sharedRepository
来group
设置要与组共享的存储库的权限。然后,在存储库的根目录及其下的每个目录上设置 setgid 位,并将每个文件和目录的组更改为每个用户(或至少是非 root 用户)所属的组。
这将确保 Git 将树中的所有文件写入与给定组共享权限,并且所有文件和目录的组都将是相同的:包含目录的组。