首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止Git在拉取时更改权限

防止Git在拉取时更改权限
EN

Stack Overflow用户
提问于 2012-10-05 02:25:22
回答 2查看 19K关注 0票数 25

当我从我的存储库中拉出更改时,Git更改了文件权限(实际上,他更改了组的write权限)。

如果我是正确的,Git应该只跟踪可执行位,而且无论如何都可以通过将core.filemode设置为false来删除它。

但是,尽管filemode被设置为false (在本地、全局和用户中),但当我拉取时,write权限不断变化。

我可以使用git-hooks来重置正确的chmod,但这是一些开销,我更希望有一种方法可以让git完全忽略文件模式的更改。

有人知道如何做到这一点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-05 04:24:10

在这里,一个可能有用的配置设置是core.sharedRepository,它在博客文章“Preserving Group Write on Git Objects in a Collaborative Repository”中介绍:

解决方案被证明是相当简单的。

在文件.git/config中,我添加了一行代码:"sharedRepository = group",如下所示:

核心存储库格式版本=0文件模式= true bare = false对数反转日期= true sharedRepository =组

此后,.git/objects中的新文件被创建为具有适当的组写入权限。

(但是,请注意,新文件由接收推送的用户帐户的主组拥有。如果在项目中协作的用户具有不同的主要组,并且这些用户不共享该组中的成员资格,您可能仍然会遇到问题。)

确保您的 umask

示例:0660将使存储库对所有者和组可读/写,但对其他用户不可访问(除非umask0022,否则等同于组)。

票数 18
EN

Stack Overflow用户

发布于 2016-06-15 08:42:39

我使用的解决方案是run the command as the user,它具有您想要保留的权限:

代码语言:javascript
复制
sudo -u user command

在这种情况下,它可能是:

代码语言:javascript
复制
sudo -u www-data git pull

www-data being the apache default user on Ubuntu at least.

这可以防止权限发生更改。我在VPS上更新git存储库时使用它,同时将文件权限设置为set服务器用户。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12733452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档