git pull 报错:unable to unlink old 'bootstrap/app.php': Permission denied

2021-12-29T09:58:59

代码更新了 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 即可。

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »