Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git拉取,同时保留更新文件的原始组_Git - Fatal编程技术网

Git拉取,同时保留更新文件的原始组

Git拉取,同时保留更新文件的原始组,git,Git,我有以下场景: 开发人员在开发机器上进行更改,并将git提交到中央存储库。一群人帮助更新网站。我已使整个源代码归user1.git所有(即,所有管理员、user1、user2等的专用组),并可由组成员编写 但是我发现,当user2git pull origin master时,更新的文件现在归user2.user2所有,这意味着user3无法在下一次git pull中更新此文件。我不想让每个人都可以编写源代码,这不应该是一种好的做法 我怎样才能git pull而新文件却归user2.git所有(

我有以下场景:

开发人员在开发机器上进行更改,并将git提交到中央存储库。一群人帮助更新网站。我已使整个源代码归user1.git所有(即,所有管理员、user1、user2等的专用组),并可由组成员编写

但是我发现,当user2
git pull origin master
时,更新的文件现在归user2.user2所有,这意味着user3无法在下一次
git pull
中更新此文件。我不想让每个人都可以编写源代码,这不应该是一种好的做法


我怎样才能
git pull
而新文件却归user2.git所有(保留组git)?

这不是git的问题,而是文件的权限问题(它是git目录这一事实是一个目录中多个用户的使用案例,但也适用于其他用户)。解决方案是将目录标记为set group id


如果目录
my\u project
中包含git repo(因此
my\u project/.git
)然后运行命令:
chown root:git my_project
chmod g+s my_project
,然后该目录中的所有文件都应将git设置为组。

这不是git问题,而是文件的权限问题(事实上,它是一个git目录是一个目录中多个用户的用例,但也适用于其他用户)。解决方案是将该目录标记为set group id


如果目录
my\u project
中包含git repo(因此
my\u project/.git
)然后运行以下命令:
chown root:git my_project
chmod g+s my_project
,然后该目录中的所有文件都应该将git设置为组集。

谢谢dave。这在一定程度上起到了作用。git/index和ORIG_HEAD的权限在
git pull
之后变为组不可写,尽管我已经明确指定了它们因此.git目录上的权限可能不是setgpid?您的意思是设置sticky gid或setgpid(我找不到)?git目录的权限是drwxrwsr-x,而.git/index变成了-rw-r--r--现在一切都正常了。我不知道为什么。谢谢Dave。谢谢Dave。这在一定程度上起到了作用。git/index和ORIG_HEAD的权限在
git pull
之后变成了组不可写的权限,尽管我已经明确地这样做了。git dir上的权限vectory可能不是setgpid?你是说设置sticky gid或setgpid(我找不到)?.git目录的权限是drwxrwsr-x,而.git/index变成了-rw-r--r--现在一切都正常了。不知道为什么。谢谢Dave。