git如何处理文件夹权限?

hdo*_*rio 45 git directory permissions mode

我正在使用git版本1.5.6.3,似乎git没有注意到文件夹的模式更改

#create a test repository with a folder with 777 mode
:~$ mkdir -p test/folder
:~$ touch test/folder/dummy.txt
:~$ cd test
:~/test$ chmod 777 folder/

#init git repository
:~/test$ git init
Initialized empty Git repository in ~/test/.git/
:~/test$ git add .
:~/test$ git commit -m 'commit a directory'
Created initial commit 9b6b21a: commit a directory
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 folder/dummy.txt

#change folder permission to 744
:~/test$ chmod 744 folder/
:~/test$ git status 
# On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

什么04000代表什么?

:~/test$ git ls-tree HEAD folder
040000 tree 726c1d5f0155771348ea2daee6239791f1cd7731    folder
Run Code Online (Sandbox Code Playgroud)

这是正常的行为吗?

如何跟踪文件夹模式更改?

CB *_*ley 70

git跟踪的唯一"权限"位是文件的可执行位,其余模式位描述每个git树中的对象是什么类型的文件系统对象.git支持文件和符号链接(blob),目录(树)和子模块(提交).

git旨在帮助跟踪不同机器上的源代码.权限位取决于计算机之间的用户和组映射.在不存在这些映射的分布式环境中,跟踪权限位通常最终会妨碍事情而不是帮助任何事情.

如果您需要跟踪更多文件系统属性,git您可以考虑本地跟踪的内容和扩展工具,如etckeeper.

  • 这(不再)完全准确。请参阅/sf/ask/2868524501/ (2认同)