42

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

 [core]
    filemode = true

它是什么?这是什么意思?是否有任何关系

    bare = false

我也不太明白?

4

2 回答 2

53

一个 git仓库(在此处详述)与文件模式无关。

裸存储库用作目标,以推送到。
您可以推送到裸存储库,因为它没有工作树:无需担心维护所述工作树与您刚刚推送的内容同步。

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

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

手册git config

core.fileMode

如果为 false,则忽略索引和工作树之间的可执行位差异;对损坏的文件系统(如FAT(文件分配表))很有用。
git-update-index

该命令尊重core.filemode配置变量。
如果您的存储库位于可执行位不可靠的文件系统上,则应将其设置为false.
这会导致命令忽略索引中记录的文件模式和文件系统上的文件模式的差异,如果它们仅在可执行位上不同的话
在这样一个不幸的文件系统上,您可能需要使用git update-index --chmod=.

对我来说,它在每个 repo 的./git/config文件中,靠近顶部,

我也是,但在 Windows 上,它总是:

git config --local core.filemode
false

不要忘记 git 只记录两种文件模式:

  • 644
  • 755
于 2013-10-27T17:33:07.563 回答
17

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

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

于 2013-10-27T16:30:58.837 回答