






















Git 中的 “mode” 指的是文件的模式位,它决定了文件是常规文件、目录、符号链接,以及文件的权限设置(读、写、执行权限),本记录相关内容。
git 会管理文件的模式,同内容一样会纳入修改范畴。当文件模式被修改时,虽然内容相同但是仍然可以在修改列表中看到他。
1 | |
这表明文件的权限(mode)发生了变化,而不是文件的内容。具体来说:
100644 表示文件之前是普通文件,权限为 -rw-r--r--(所有者可读写,其他人只读)。100755 表示文件现在是可执行文件,权限为 -rwxr-xr-x(所有者可读写执行,其他人可读可执行)。100644): 常规文件的模式位通常表示为 -rw-r--r--,意味着所有者有读和写权限,而组和其他用户只有读权限。100755): 可执行文件的模式位通常表示为 -rwxr-xr-x,意味着所有者、组和其他用户都有读和执行权限,所有者还可以写。120000): 符号链接的模式位表示文件是一个指向其他文件或目录的链接。040000): 目录的模式位表示文件是一个目录。git add 命令添加文件到暂存区时,Git 会记录文件的当前模式位。当你提交更改时,这些模式位会被存储在 Git 的对象数据库中。git checkout 命令检出文件时,Git 会根据存储在对象数据库中的模式位设置文件的权限。查看模式变化:使用 git diff --summary 或 git status 命令可以查看文件模式的变化。
忽略模式变化
:如果你不希望 Git 跟踪文件权限的变化,可以在全局配置中设置core.fileMode 为 false:
1 | |
或者只在当前仓库中设置:
1 | |
强制设置模式:你可以使用 git update-index命令来强制设置文件的特定模式位:
1 | |
这个命令会为指定的文件添加执行权限。
文章链接:
https://www.zywvvd.com/notes/tools/git/git-mode/git-mode/
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。