git ignore filemode config无效

时间:2012-10-19 15:54:18

标签: git ubuntu file-permissions gitolite githooks

我在ubuntu linux服务器上使用gitolite git服务器。我使用了一个将在每次推送时调用的钩子,并将更新服务器的目录(包括实时站点的源代码)。

现在,每当我在本地电脑上更改内容并将更改推送到服务器时,都会调用挂钩并且拉取请求正在执行。但问题是,更新的文件现在已经更改了权限。像:

rwxrwxr_x (before)
rwx_____x (After)

经过几次搜索,我确实找到了this solution。我用我的全局git配置和特定于存储库的配置设置尝试了它。设置完配置后,每当我试图从我的本地电脑上推出时,同样的问题再次发生在上面,因此看起来,由于某种原因,解决方案无法正常工作。

有人有任何想法,可能是什么原因?除配置设置外,我还需要做什么吗?欢迎任何建议。提前致谢。

1 个答案:

答案 0 :(得分:4)

OP Rana确认in the comments时,如果挂钩以:

开头
umask 002

它将生成具有适当保护的文件。


Alan Thompson提及:

  

core.filemode仅影响工作目录的差异,而不影响仓库中2次提交的差异。
  因此,如果您已经提交了不同的文件模式,则必须使用filter-branch,例如“Can I make git diff ignore permission changes”。

git filter-branch -f --tree-filter 'find * -type f | xargs chmod 644 ' -- --all