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

从Windows向Git添加Bash脚本:自动设置可执行权限位

从Windows提交Bash脚本至Git时自动设置可执行权限的方法

当然可以自动设置,不用等Linux构建失败后再补救,以下是几种可行方案:

  • 使用项目级.gitattributes文件
    在项目根目录创建或编辑.gitattributes文件,添加一行规则:
    *.sh text eol=lf executable
    这会让Git自动将所有.sh文件标记为文本文件(转换换行符为LF,适配Linux环境),同时自动设置可执行权限位。提交时Git会直接应用这个配置,无需手动执行命令。

  • 全局配置(适配所有Git项目)
    如果希望所有本地Git项目的.sh文件都自动应用权限设置,先运行命令指定全局属性文件:
    git config --global core.attributesfile ~/.gitattributes
    然后在用户主目录下创建.gitattributes文件,同样添加*.sh text eol=lf executable这一行即可。

  • 预提交钩子自动处理
    在项目的.git/hooks目录下创建pre-commit文件(无后缀),写入以下内容:

#!/bin/sh
for file in $(git diff --cached --name-only --diff-filter=ACM | grep '\.sh$'); do
    git update-index --chmod=+x "$file"
done

给这个钩子文件本身设置可执行权限(在Git Bash中运行chmod +x .git/hooks/pre-commit),之后每次提交前,Git会自动为暂存区中的.sh文件添加可执行权限。

需要说明的是:Windows文件系统本身不支持Unix风格的可执行权限位,Git默认不会自动为这类文件标记权限,所以需要通过上述方式明确告诉Git要为.sh文件设置可执行属性。

内容的提问来源于stack exchange,提问作者theMayer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:14:56