【问题标题】:What is git's "filemode"?git的“文件模式”是什么?
【发布时间】:2013-11-06 08:55:16
【问题描述】:

什么是 git filemode?对我来说,它在每个 repo 的 ./git/config 文件中,靠近顶部:

 [core]
    filemode = true

这是什么?这是什么意思?是否与

有任何关系
    bare = false

我也不太明白?

【问题讨论】:

    标签: git filesystems repository settings config


    【解决方案1】:

    git 裸仓库 (detailed here) 与文件模式无关。
    它用于推送到它,因为它没有工作树,因此无需担心保持所述工作树与您刚刚推送的内容同步。

    什么是“假”文件?什么是“工作”目录?

    没有“假”文件。只是一个裸仓库只包含 git 的管理和控制文件,而不是您可以使用和修改的实际数据文件。
    当 repo 不是裸露时,它们会在“工作目录”中签出。

    git config man page

    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只记录两种文件模式:

    • 644
    • 755

    【讨论】:

    • 并且(作为旁注)core.filemodecore.fileMode 是同一个变量,因为这些 git 配置条目不区分大小写。 (我不知道为什么文档有时在使用全小写时不一致,而在其他时候使用 camelCase。)
    【解决方案2】:

    filemode set true 表示文件模式权限更改被视为更改。

    bare set true 表示该目录不是工作目录(没有真实文件)。

    【讨论】:

    • 什么是“假”文件?什么是“工作”目录?
    • 我不明白假文件的问题。工作目录是您可以实际提交更改的目录。裸目录是通常在远程服务器上找到的目录。你也可以使用 git init --bare 创建一个裸目录。
    • filemode 仅指可执行位,而不是所有权限(例如,chmod -w file 是 git 的不变)。
    猜你喜欢
    • 2014-11-19
    • 2013-04-02
    • 1970-01-01
    • 2020-09-28
    • 2020-05-31
    • 2012-04-26
    • 1970-01-01
    • 2010-12-02
    • 2021-04-30
    相关资源
    最近更新 更多