我在 ubuntu Linux 服务器上使用 gitolite git 服务器。我使用了一个钩子,它将在每次推送时调用并更新服务器的目录(其中包括实时站点的源代码)。
现在,每当我在本地电脑上更改某些内容并将更改推送到服务器时,都会调用挂钩并且拉取请求会正常执行。但是,问题是,已更新的文件现在已更改权限。喜欢:
rwxrwxr_x (before)
rwx_____x (After)
经过几次搜索,我确实想出了这个解决方案 https://stackoverflow.com/questions/1580596/how-do-i-make-git-ignore-mode-changes-chmod。我确实尝试了我的全局 git 配置和存储库特定的配置设置。设置配置后,每当我尝试从本地电脑推送时,同样的问题就会像上面一样再次发生,因此,由于某种原因,该解决方案似乎不起作用。
有人知道吗,请问原因是什么?除了配置设置之外,我还需要做任何额外的事情吗?欢迎任何建议。提前致谢。
As the OP Rana https://stackoverflow.com/users/537500/rana证实在评论中 https://stackoverflow.com/questions/12977998/git-ignore-filemode-config-isnt-working/12979453#comment17602573_12977998,如果钩子以:
umask 002
它将生成具有正确保护的文件。
艾伦·汤普森 https://stackoverflow.com/users/1822379/alan-thompson提到:
core.filemode
只影响与您的工作目录的差异,而不影响存储库中两次提交之间的差异。
因此,如果您已经提交了不同的文件模式,则必须使用filter-branch
,如“我可以让 git diff 忽略权限更改吗 https://stackoverflow.com/a/16348658/6309".
git filter-branch -f --tree-filter 'find * -type f | xargs chmod 644 ' -- --all
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)