git pull
我所在的公司使用 Git 进行部署,因此它会覆盖特定的权限和所有权。在执行部署时,确保文件夹所有权和权限得以保留的最佳方法是什么?
我在 OS X 上进行开发,使用 MAMP,推送到临时服务器,该服务器是生产环境的克隆。当它到达临时服务器时,我必须随后更正权限,但它们通常设置为 664 而不是 644,这会导致 suPHP 出现问题。
答案1
答案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/zsh
zsh