什么是git的"文件模式"?

Ale*_*ray 32 filesystems git settings config repository

对于存在于每个单一git回购中的东西......在地球上......确实没有太多关于它的信息filemode.来自谷歌的前100个回复都到处都是,并且没有问过这个'标题的问题..所以这里是..那是什么filemode?对我来说,它在每个回购./git/config文件中,靠近顶部,一个...

 [core]
    filemode = true
Run Code Online (Sandbox Code Playgroud)

它是什么?这是什么意思?它与之有任何关系吗?

    bare = false
Run Code Online (Sandbox Code Playgroud)

我也没有真正得到......我git 像一个疯子一样使用,并且知道其他 git的无穷无尽,恕我直言,任意炮制/半脑筋 config参数......但不是这个......我是确定这是一个简单的事情(可能与权限有关?或者war会触发更改标志?),所以如果你知道更多关于如何操纵设置/以及产生什么效果......那将是很好的...

Von*_*onC 39

git bare repo(此处详述)与filemode无关.
它用于推送它,因为它没有工作树,所以不用担心保持所述工作树与你刚刚推送的同步.

什么是"假"文件?什么构成"工作"目录?

没有"假"文件.只是一个裸仓库只包含git的管理和控制文件,而不是你可以使用和修改的实际数据文件.
当回购不是裸露时,那些在"工作目录"中检出.

git config手册页

core.fileMode
Run Code Online (Sandbox Code Playgroud)

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

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

对我来说,它位于每个回购./git/config文件中,靠近顶部,

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

git config --local core.filemode
false
Run Code Online (Sandbox Code Playgroud)

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

  • 644
  • 755

  • 并且(作为旁注)`core.filemode`和`core.fileMode`是相同的变量,因为这些git config条目不区分大小写.(我不知道为什么文档在使用全部小写时有些不一致,有时候使用camelCase.) (7认同)

cfo*_*ish 9

filemode 设置为true表示文件模式权限更改被视为更改.

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

  • [filemode](https://www.kernel.org/pub/software/scm/git/docs/git-config.html)仅指可执行位,而不是所有权限(例如`chmod -w file`是一个git没有变化). (7认同)