git如何使用它对blob和树的权限

时间:2014-12-08 20:50:25

标签: git

如果我git ls-tree branchname path/to/directory我得到以下输出:

100644 blob d7cf85396913fb7169a881d8334f32af153122eb    .gitignore
100644 blob ba7adb479be66d8f1d62384ab53997cddd465110    .travis.yml
040000 tree 2de254bbec97958db2375e2d0ab767b23315ab50    application

所以我看到了以下权限设置:

100644 for blobs, 040000 for trees

从我读过的内容100644可以解释为 - regular file with sticky bit of 0 and file permissions of 644 (not executable by anyone)040000 - directory with sticky bit of 0 and no permissions644也可以代替755 blob,因为我只读git只跟踪可执行位。

我的问题是git究竟是如何使用这些权限的?检查分支时,它是否将它们应用于工作树中的文件和文件夹?或者是否以某种方式在内部使用它们?

PS。请注意,这个问题与这些权限的含义无关。

1 个答案:

答案 0 :(得分:2)

Git使用这些权限来确定结帐时目录条目的类型,并在必要时设置执行权限标志。据我所知,它们没有以任何其他方式使用。

在git中,文件模式比标准posix文件系统少:

  • 100644:普通文件
  • 100755:可执行文件
  • 040000:目录
  • 120000:符号链接