Sim*_*ias 18 git version-control
当我从我的存储库中提取更改时,Git会更改文件权限(实际上,他更改了组write权限).
如果我是正确的,Git应该只跟踪可执行位,无论如何可以使用设置core.filemode为false 来删除它.
但是,虽然filemode设置为false(在本地,全局和用户中),但当我拉动时,write权限会不断变化.
我可以使用git-hooks来重置正确的chmod,但这是一些开销,我更喜欢有一种方法可以让git完全忽略文件模式更改.
谁知道如何实现这一目标?
Von*_*onC 12
一个可能对此有帮助的配置设置,core.sharedRepository在博客文章" 在Collaborative Repository中保留组写Git对象 "中提供:
解决方案结果相当简单.
在文件中.git/config,我添加了一行:"sharedRepository = group",如下所示:Run Code Online (Sandbox Code Playgroud)[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true sharedRepository = group此后,
.git/objects创建了具有组写入适当权限的新文件.
(但请注意,新文件由收到推送的用户帐户的主要组所有.如果在项目上进行协作的用户具有不同的主要组,并且这些用户不共享该组中的成员资格.小组,你可能仍会遇到问题.)
确保你的价值umask:
示例:
0660将使repo对所有者和组进行读/写,但对其他人不可访问(相当于组,除非umask是例如0022).
sudo -u user command
Run Code Online (Sandbox Code Playgroud)
在这种情况下,可能是:
sudo -u www-data git pull
Run Code Online (Sandbox Code Playgroud)
www-data 至少是Ubuntu上的apache默认用户。
这样可以防止更改权限。我在更新VPS上的git存储库时使用它,同时将文件权限设置为Web服务器用户。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           12756 次  |  
        
|   最近记录:  |