git - git如何处理文件夹权限?

标签 git permissions directory 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)

04000 代表什么?

:~/test$ git ls-tree HEAD folder
040000 tree 726c1d5f0155771348ea2daee6239791f1cd7731    folder

这是正常行为吗?

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

最佳答案

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

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

如果您需要跟踪更多git 原生跟踪的文件系统属性,您可以考虑使用扩展工具,例如etckeeper。 .

关于git - git如何处理文件夹权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1071241/

相关文章:

git - 对 git rev-list 的困惑

git - 如何克隆一个 git repo 零碎的

Android:拒绝振动器的许可(发生了什么?)

java - Android 5 至 6 问题 : External Storage Path File. Exists() 已损坏/正在寻找替代方案

c - 搜索目录中的所有子目录

C++ Windows显示游戏中加载菜单的现有目录列表

git - git 如何确保相同操作/数据的提交 SHA key 仍然是唯一的?

python - django 迁移 - 具有多个开发分支的工作流

cakephp - 对CakePHP app/tmp文件夹进行生产的正确所有权和权限是什么?

c - C中的递归子目录处理