我们的工作流程是在本地计算机上开发,将更改提交到中央存储库,然后检查我们需要的存储库的分支.
问题是Git会更改其签出的文件的所有权甚至文件权限,具体取决于进行结帐的用户.这样做的直接结果是我们的CSS文件在结账后变得不可读,因为Git将文件所有权更改为在webroot中执行Git pull的人.
例:
git pull:style.css拥有user_a:group_agit pull:style.css拥有user_b:user_b我想保持所有权user_a:group_a.每当我的团队中的一个人对文件进行更改并将所有权更改回原始配置时,我都不希望必须登录.
别人怎么处理这个?您如何处理多个用户使用的存储库.我们的系统上有suphp,无法将其取下.
一年多来,我一直遇到GIT和目录/文件权限的麻烦.我有一个中央存储库,多个开发人员使用ssh(源设置为ssh:// example/git/repository)向其推送代码.我已按如下方式设置存储库:
1)我在中央存储库中的配置文件:[core] repositoryformatversion = 0 filemode = true bare = true sharedrepository = 0660
2)所有存储库目录权限设置为770(rwxrwx ---)3)./objects/XX和./objects/info中的所有文件都设置为440(r - r -----)4)全部其他文件设置为660(rw-rw ----)5)所有权设置为root:group_name
(请注意,这来自此主题中顶部响应中的推荐设置:使git push尊重权限?)
所有访问用户都是组"group_name"的成员.
问题是如果user1推送到存储库,某些文件的文件所有权设置为user1:user1 - 意味着该组已更改.一旦发生这种情况,其他用户就无法从存储库中推送(或拉出),因为他们无权再从存储库中的所需文件进行读取,写入或执行.
我已经阅读了有关Stack Overflow问题的所有线程,以及网络上的其他任何地方,但我仍然遇到同样的问题.
问题是,我不确定这个问题是GIT还是UNIX之一,我不知道如何修复它.当用户推送到存储库时,如何阻止更改组?