【发布时间】:2013-11-06 08:55:16
【问题描述】:
什么是 git filemode?对我来说,它在每个 repo 的 ./git/config 文件中,靠近顶部:
[core]
filemode = true
这是什么?这是什么意思?是否与
有任何关系 bare = false
我也不太明白?
【问题讨论】:
标签: git filesystems repository settings config
什么是 git filemode?对我来说,它在每个 repo 的 ./git/config 文件中,靠近顶部:
[core]
filemode = true
这是什么?这是什么意思?是否与
有任何关系 bare = false
我也不太明白?
【问题讨论】:
标签: git filesystems repository settings config
git 裸仓库 (detailed here) 与文件模式无关。
它用于推送到它,因为它没有工作树,因此无需担心保持所述工作树与您刚刚推送的内容同步。
什么是“假”文件?什么是“工作”目录?
没有“假”文件。只是一个裸仓库只包含 git 的管理和控制文件,而不是您可以使用和修改的实际数据文件。
当 repo 不是裸露时,它们会在“工作目录”中签出。
core.fileMode
如果为 false,则忽略索引和工作树之间的可执行位差异;在像FAT (File Allocation Table)这样的损坏的文件系统上很有用。
见git-update-index。该命令采用
core.filemode配置变量。
如果您的存储库位于可执行位不可靠的文件系统上,则应将其设置为false。
这会导致命令忽略索引中记录的文件模式和文件系统上文件模式的差异,如果它们仅在可执行位上有所不同。
在这样一个不幸的文件系统上,您可能需要使用git update-index --chmod=。对我来说,它在每个 repo 的
./git/config文件中,靠近顶部,
我也是,但在 Windows 上总是这样:
git config --local core.filemode
false
别忘了git只记录两种文件模式:
【讨论】:
core.filemode 和 core.fileMode 是同一个变量,因为这些 git 配置条目不区分大小写。 (我不知道为什么文档有时在使用全小写时不一致,而在其他时候使用 camelCase。)
filemode set true 表示文件模式权限更改被视为更改。
bare set true 表示该目录不是工作目录(没有真实文件)。
【讨论】:
chmod -w file 是 git 的不变)。