git pull 报错:unable to unlink old 'bootstrap/app.php': Permission denied
代码更新了 bootstrap/app.php,主要是修改了 info 日志不再向上 bubble。在线上提交时出现报错:unable to unlink old 'bootstrap/app.php': Permission denied
。
因为之前没遇到过,所以只能求助百度。CSDN 社区的一篇帖子让干掉应用或重启系统,好家伙,太坑了,不敢用。后在 stackoverflow 上看到一个被采纳的回答:
When you have to unlink file, you have to have permission 'w' for directory, in which file is, not for the file...
意思是当你想要删除某个文件,你需要有对文件所在的文件夹的 “写” 的权限,而不是文件。
所以当前 git pull 失败意味着当前 git 执行的用户(服务器默认 ubuntu) 与 app
文件夹的所有者不一致,或者对 app
文件夹没有 w
权限。ll
查看发现 app
目录所有者被修改了, chown ubuntu.ubuntu app
修改即可。
修改回来之后,再次 pull 报错,存在本地文件已修改,需要 commit 之后才可以提交。这是因为上次 pull 没有完全成功,git log
可以看到目前的版本没有更新。使用 git checkout xxx
恢复本地文件,再次 pull 即可。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。