git在macos上因filemode默认开启而误报权限变更,需执行git config core.filemode false禁用;全局配置用--global参数,旧项目需单独设置,验证用git config --list | grep filemode。

Mac终端执行git status时频繁出现old mode 100644 new mode 100755提示,但文件内容完全没变,这是因为macOS默认记录并比对文件权限位,而chmod操作会触发Git误报变更。
确认当前仓库是否已开启filemode追踪
进入项目根目录后运行:
git config core.filemode
如果输出true,说明权限追踪处于开启状态——这正是你看到一堆无关变更的根源。
为当前仓库禁用文件权限追踪
在项目根目录下执行:
git config core.filemode false
这一步会直接修改.git/config中的[core]区块,添加fileMode = false。注意:该设置只影响当前仓库,不波及其他项目。
批量替换指定目录下所有 Git 仓库的远程地址(remote URL)。 当用户需要将 Git 仓库从一个服务器迁移到另一个服务器时使用。 触发词:git remote 替换、git url 批量修改、git 仓库迁移、更换 git 地址、批量修改 remote url。
让所有本地仓库统一忽略权限变化
方法一:全局配置(推荐)
git config --global core.filemode false
方法二:手动编辑全局配置文件
① 打开终端,输入:
vi ~/.gitconfig
② 在[core]段落下新增一行:
fileMode = false
③ 保存退出(:wq)
【重要前提】如果已存在项目且之前执行过git config core.filemode true或配置被覆盖,全局设置不会自动覆盖项目级设置,必须单独进每个旧项目执行git config core.filemode false。
验证设置是否生效
执行:
git config --list | grep filemode
若输出中包含core.filemode=false(注意等号前后无空格),说明配置已写入;再运行git status,此前因chmod导致的模式变更将不再显示。










