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

执行git remote set-url后repo/config权限丢失致Capistrano部署失败

Capistrano部署报错:fatal: unable to access './config': Permission denied 解决方法

问题现象

执行 cap production deploy 进行部署时,Capistrano返回如下错误:

DEBUG [3730481e] fatal: unable to access './config': Permission denied

经排查,问题源于执行 git remote set-url origin https://myawesometoken:@github.com/myawesomeusername/myawesomeproject.git 命令后,仓库的 repo/config 文件权限异常丢失:

  • 命令执行前,文件权限为0664:
-rw-rw-r--  1 ec ec 217 Mar  1 12:08 config
  • 命令执行后,权限被重置为0000:
----------  1 ec ec 217 Mar  1 12:09 config

当前 repo/config 文件内容如下:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = true
[remote "origin"]
        url = https://myawesometoken:@github.com/myawesomeusername/myawesomeproject.git
        fetch = +refs/*:refs/*
        mirror = true

原因分析

执行 git remote set-url 修改远程仓库地址时,Git在更新 config 文件后错误地重置了文件权限,导致所有用户均无法读取该文件,最终引发Capistrano部署时Git无法访问配置文件的报错。

解决方案

1. 修复文件权限

手动恢复 repo/config 的正常可读权限:

chmod 0664 /path/to/your/repo/config

将 /path/to/your/repo 替换为实际的仓库路径。

2. 重新执行部署

权限修复完成后,再次运行Capistrano部署命令:

cap production deploy

3. 预防后续权限异常(可选)

如果后续执行 git remote set-url 仍出现权限问题,可先临时关闭Git的文件权限跟踪:

git config core.filemode false

修改完远程地址后,若需要可重新开启:

git config core.filemode true

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 01:41:01