0

有什么方法可以让 GIT 停止复制文件组和所有者设置吗?我的情况如下:

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

任何想法如何改变我的工作流程?

PS:我在家庭服务器上使用 Linux/Debian

4

2 回答 2

1

过了一会儿,我找到了我的问题的答案,尽管我只是为了记录而回答。

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

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

于 2014-08-09T03:38:42.323 回答
1

在此处查看答案:您如何处理 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 将使您无需考虑稍后设置权限。

于 2013-05-22T16:34:08.910 回答