首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用git时保持分组

如何在使用git时保持分组
EN

Server Fault用户
提问于 2012-11-16 13:48:54
回答 2查看 2.6K关注 0票数 1

我有一个临时站点,它是一个git存储库的工作目录。如何设置git,让开发人员在不更改修改文件组的情况下提取分支或发布?

举个例子。假设我有两个开发者,罗宾和大卫。它们都属于git用户组,所以最初它们都可以在site.php上拥有写权限。

代码语言:javascript
复制
-rw-rw-r--  1 robin git-users   46068 Nov 16 12:12 site.php
drwxrwxr-x  8 robin git-users    4096 Nov 16 14:11 .git

在robin-server1$ git拉原主之后:

代码语言:javascript
复制
-rw-rw-r--  1 robin robin       46068 Nov 16 12:35 site.php
drwxrwxr-x  8 robin git-users    4096 Nov 16 14:11 .git

大卫对site.php没有写权限,因为这个组从‘git-用户’变成了'robin‘。从现在开始,当david尝试拉到这个存储库时,他将被拒绝一个许可。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-11-26 09:50:39

最好通过设置所有目录的权限来解决这个问题。如果设置组'setgid‘位,则当组成员修改目录组时,目录中的所有文件都将维护目录组。因此,要在临时站点上快速设置它,请执行以下操作:

代码语言:javascript
复制
chmod g+ws [directory]
find [directory] -type d -exec chmod g+ws {} \;
find [directory] -type f -exec chmod g+w {} \;

第一个命令为站点顶层目录上的组设置写位和setgid位。然后,第二个查找顶层文件夹的所有子目录,并执行相同的操作。然后,第三个确保组对所有文件都有写访问权。

在最初创建git存储库时,可以使用--shared选项让它自动完成上述操作:

代码语言:javascript
复制
git create --shared [directory]
票数 5
EN

Server Fault用户

发布于 2012-11-17 23:11:06

尝试使用git子模块,这应该是您所需的解决方案。

或者,如果您真的不需要它,您可以为此实现一些脚本,这些脚本将在拉出之前保存一些文件,然后弹出它们,但这也会给以后的合并带来问题。

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

https://serverfault.com/questions/449420

复制
相关文章

相似问题

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