如何防止git提交文件模式和所有者

时间:2016-03-30 22:20:51

标签: git github

为了学习和实际目的,我在远程linux服务器上提交一个完整的joomla文件夹,然后将repo推送到github。然后我使用Github Desktop将repo克隆到我的本地Mac。但是,当我打开网页时,我得到了一个" mkdir():权限被拒绝"错误。

相比之下,我从github下载了repo的zip文件然后解压缩,这次网页没有问题。

我认为.zip和克隆回购之间的唯一区别是前者没有.git目录,所有其他文件都是相同的,所以它只能是文件所有者/许可问题。为了验证这一点,我将所有文件所有者更改为root:root并将权限更改为0777,此时网页可以打开。

所以我认为这证实了当我在远程服务器上git commit时,git也会记录文件'权限,我该如何防止这种情况?

1 个答案:

答案 0 :(得分:1)

正如@torec在他的评论中提到的,git只跟踪执行位,除非你告诉它,否则基本上不跟踪chmod。

# tell git to ignore filemode (chmod) as change,
git config core.fileMode false
  

<强> core.fileMode
   如果为false,则索引与之间的可执行位差异    工作副本被忽略;对像FAT这样的破碎文件系统很有用    默认为True。

<强> How to update executable bit?

# If you wish to set the executable bit use this comand
git update-index --chmod=+x <file>
  

<强> --chmod=(+|-)x   设置更新文件的执行权限。