【问题标题】:git ignore filemode config isn't workinggit忽略文件模式配置不起作用
【发布时间】:2012-10-10 06:56:38
【问题描述】:

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

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

rwxrwxr_x (before)
rwx_____x (After)

经过几次搜索,我确实找到了 this solution 。我确实使用我的全局 git 配置和存储库特定的配置设置进行了尝试。设置配置后,每当我尝试从本地电脑推送时,同样的问题再次发生,如上所示,因此似乎出于某种原因,该解决方案不起作用。

有人知道吗,请问这是什么原因?除了配置设置之外,我还需要做些什么吗?欢迎任何建议。提前致谢。

【问题讨论】:

  • 确保你的钩子以 umask 002 开头
  • 太好了,谢谢。似乎它的工作:)。
  • 太好了,我添加了一个答案来反映该解决方案

标签: git ubuntu file-permissions gitolite githooks


【解决方案1】:

由于OP Rana 确认in the comments,如果钩子以:

umask 002

它将生成具有正确保护的文件。


Alan Thompson 提及:

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

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

【讨论】:

    猜你喜欢
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 2011-11-23
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多