You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Git提交时自动保留可执行文件的chmod权限?

解决Git自动保留可执行文件权限的问题

核心逻辑

Git通过文件的executable属性跟踪可执行权限,Windows系统不支持Unix风格的权限位,所以默认不会自动标记文件为可执行。以下是Git原生的解决方案,无需额外脚本:

针对单个/特定文件设置

如果是已知的可执行文件,单独标记即可:

  • 执行命令标记单个文件:git update-index --chmod=+x path/to/your/file
  • 提交变更:git commit -m "Mark [文件名] as executable"
    克隆到Linux系统后,该文件会自动保留可执行权限。

批量标记特定类型文件

如果有多个同类型的可执行文件(比如.sh脚本或指定目录的二进制文件),用通配符批量处理:

  • 标记所有.sh脚本:git update-index --chmod=+x *.sh
  • 标记bin/目录下的所有二进制文件:git update-index --chmod=+x bin/*
    提交这些变更后,后续修改这些文件时,Git会自动维护它们的可执行属性。

确保Git权限跟踪开启

先确认Git的core.fileMode配置处于开启状态(默认开启),这是Git跟踪权限的基础:

git config core.fileMode true

开启后,Git会在首次标记可执行属性后,后续提交自动保留该设置。

避坑提示

  • 不要使用git add . --chmod+x,这会给所有文件添加可执行权限,不符合需求。
  • 首次标记的变更必须提交到仓库,才能在克隆时生效。

内容的提问来源于stack exchange,提问作者K Split X

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 02:15:13