什么是git" filemode"?

时间:2013-10-27 16:20:25

标签: git filesystems repository settings config

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

 [core]
    filemode = true

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

有任何关系
    bare = false

我也没有真正得到...我像疯子一样使用git ,并且知道其他一百万个的git是无穷无尽的,恕我直言,任意炮制/半脑干 config参数做..但不是这一个...我敢肯定这是一件简单的事情(可能与权限相关?或者战争引发了变化)旗帜?),所以如果你知道更多关于如何操纵设置/以及产生什么影响......那将是很好的...

2 个答案:

答案 0 :(得分:37)

git bare repo(detailed here)与filemode无关 它用于推送它,因为它没有工作树,所以不用担心维护所述工作树与你刚刚推送的工作树保持同步。

  

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

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

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

答案 1 :(得分:9)

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

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