设置git config core.filemode为false有什么后果?是否安全?
Git core.filemode 配置影响说明
操作安全性
在Windows 10 + Cygwin、协作方均为Mac设备的场景下,执行git config core.filemode false是安全的。该配置仅修改本地Git的权限检测规则,不会修改已提交的仓库记录,也不会对协作方的工作环境产生影响。
常见场景影响说明
- 本地新建shell脚本推送时可执行位不会丢失
core.filemode设为false仅会忽略本地文件系统和Cygwin权限映射导致的自动执行位变更,若你需要给新脚本添加可执行权限,手动执行git add --chmod=+x <脚本路径>后提交推送,远程仓库依然会保留可执行位标识,Mac端同事拉取后可正常获得执行权限。 - 拉取远端可执行文件时可执行位不会丢失
该配置仅限制本地Git对执行位变更的检测逻辑,拉取操作会完全遵循远端仓库记录的权限标识给本地文件设置对应权限,你本地拉取到的可执行文件依然会保留可执行位。
注意事项
- 不加参数的
git config core.filemode false仅对当前所在仓库生效,如果你有多仓需求,可以添加--global参数设置全局生效,全局生效前需确认你常用的所有仓库都不需要自动检测本地执行位变更。 - 后续需要调整已提交文件的可执行权限时,不要直接修改本地文件的系统权限,需通过
git update-index --chmod=+x/-x <文件路径>的方式修改,否则Git不会识别到权限变更,提交也不会生效。 - 如果你后续切换到纯Linux/Mac开发环境,建议将配置改回
git config core.filemode true,避免本地手动修改的执行位无法被Git识别。
内容的提问来源于stack exchange,提问作者Daniel Kaplan
相关产品推荐
相关产品推荐

