GIT停止复制所有者和组权限

时间:2013-05-22 16:15:02

标签: linux git

有没有办法说GIT停止复制文件组和所有者设置?我的情况如下:

我正在家庭服务器上开发,我需要使用我的用户权限(而不是root)才能在Eclipse IDE中进行开发(如果文件位于root所有者和组中,则Eclipse会因为无法使用它而哭泣)。 完成后,我使用GIT与在Red Hat上运行的远程服务器同步,文件/文件夹组和所有者是特定于服务器的。但是当我同步它时,它也将复制我的家庭服务器权限和远程服务器上的apache抛出错误,因为它无法读取文件所以我需要在每次提交新的/更改的文件后自己重置它。

如何改变我的工作流程?

P.S:我在家庭服务器上使用Linux / Debian

2 个答案:

答案 0 :(得分:1)

在此处查看答案:How do you deal with file ownership in git?

你没有做错任何事,这只是基本的git行为。您可以在本地将权限更改为他们需要在服务器上执行的操作并执行新的提交。或者,您可以在执行同步时创建一个脚本来修复服务器上的所有所有权/权限。

如果您使用git push通过服务器上的git存储库将更改推送到服务器,则可以创建一个post-receive挂钩来调用此脚本。

http://git-scm.com/book/en/Customizing-Git-Git-Hooks

另一件事确实发生在我身上。许多Linux发行版将默认的umask设置为0077或0007.由于我是唯一一个使用笔记本电脑的人,因此我将其改为0002,因为它只会让很多东西变得更容易(加上我的主目录仍然是700)。所以我创建的所有文件都是rwxrwxr-x。更改umask将使您无需考虑稍后设置权限。

答案 1 :(得分:1)

我在一段时间后找到了我的问题的答案,虽然我只是为了记录而回答。

用户/组所有权不通过存储库共享(因此存储)。仅传输数字文件权限(例如644)。

更新/创建的文件将调整运行Git命令的当前用户的用户和组所有权。