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

如何仅更新并提交文件权限?执行Git命令后权限显示异常求解

问题原因及解决方法

原因分析

  1. Windows文件系统限制:NTFS/FAT文件系统不支持Unix-style的执行权限位,本地ls显示的rwxr-xr-x只是Git Bash模拟出的权限,并非文件系统本身的权限设置。
  2. Git默认配置:Windows环境下Git默认设置core.filemode=false,会忽略文件权限的变化,不会将权限变更纳入版本追踪范围。
  3. 未提交权限变更:git update-index --chmod=+x docker.sh仅修改了Git索引中的权限标记,但你并未将这个变更提交到版本库,git ls-tree HEAD查看的是已提交到HEAD的历史内容,所以权限还是原来的100644。

解决步骤

  1. 开启仓库的权限追踪:
    在Git Bash中执行命令,开启当前仓库的文件权限追踪:
    git config core.filemode true
    
  2. 标记权限并提交变更:
    # 标记文件为可执行
    git update-index --chmod=+x docker.sh
    # 将权限变更加入索引
    git add docker.sh
    # 提交变更到本地仓库
    git commit -m "Add execute permission to docker.sh"
    
  3. 验证权限变更:
    执行以下命令查看最新提交的文件权限,此时应该显示100755:
    git ls-tree HEAD docker.sh
    
  4. 推送到Bitbucket:
    git push
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:12:19