git如何处理文件夹权限?
我使用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)
04000
代表什么?
:~/test$ git ls-tree HEAD folder 040000 tree 726c1d5f0155771348ea2daee6239791f1cd7731 folder
这是正常的行为?
我如何跟踪文件夹模式更改?
git
跟踪的唯一“权限”位是文件的可执行位,其余的模式位描述了每个git树中对象的文件系统对象的types。 git
支持文件和符号链接(blob),目录(树)和子模块(提交)。
git
旨在帮助跟踪不同机器上的源代码。 权限位取决于机器之间的用户和组映射。 在不存在这些映射的分布式环境中,跟踪权限位通常最终会阻碍事情而不是帮助任何事情。
如果你需要跟踪更多的文件系统属性,那么你可以考虑使用扩展工具,比如etckeeper 。