如何在 git-pull 之后更改权限和所有权以匹配文件夹?

如何在 git-pull 之后更改权限和所有权以匹配文件夹?

git pull我所在的公司使用 Git 进行部署,因此它会覆盖特定的权限和所有权。在执行部署时,确保文件夹所有权和权限得以保留的最佳方法是什么?

我在 OS X 上进行开发,使用 MAMP,推送到临时服务器,该服务器是生产环境的克隆。当它到达临时服务器时,我必须随后更正权限,但它们通常设置为 664 而不是 644,这会导致 suPHP 出现问题。

答案1

您可以使用其中一个 git hooks 吗?

可能是结账后的钩子。

答案2

post-merge在阅读完其他答案提供的链接后,我最终的答案是必须使用钩子。

在该.git/hooks文件夹中,我创建了一个名为的文件post-merge,其中包含类似以下代码:

#!/bin/sh
sudo chown -R opensaurusrex:staff .
sudo chmod 2775 .
sudo find . -type d -exec chmod 2775 {} \;
sudo find . -type f -exec chmod 0664 {} \;

我不记得是否必须以特定方式运行它才能确保 sudo 正常工作。如果您将其替换为现代 MacOSX 发行版的#!/bin/sh当前版本,它应该可以工作。#!/bin/zshzsh

相关内容