我将SSH的配置文件签入到由运行自动化测试的系统克隆的存储库中。我正在运行Linux(我的目标计算机也是如此),我不小心检查了文件的第一个版本,权限字段为664.由于组写权限,OpenSSH拒绝配置文件。
我需要将文件权限位更改为644并提交更改,但Git不会将文件识别为已更改。
如何更新存储库中的文件写入权限?
根据this thread,Git只会识别执行位的变化。我测试了更改执行位,git 识别出该更改,并允许我提交它。但我不想设置执行权限位。
This SO question建议使用git-cache-meta来存储除执行位之外的权限位,但看起来该解决方案需要修改存储repo的远程服务器,并且我没有控制该服务器。
我已经咨询了以下SO问题,但他们没有帮助:
How to force Git to commit a file if it is recognized as unchanged
Updating file permissions only in git
关于让Git 忽略权限位更改还有很多问题,但答案几乎全部围绕filemode配置选项,这对此没有帮助。
答案 0 :(得分:0)
以下问题的答案是:Git is changing my file's permissions when I push to server
那么如何更新存储库中的文件写权限?您不能,因为读/写权限实际上并未存储在存储库中。
我的建议是添加一个在克隆存储库后更改权限的脚本,或者如果您有当前权限阻止的操作,请添加一些在执行操作之前更改权限的代码。