在远程服务器中,我设置了一个接收后 Hook ,以便对我的存储库进行 git check out :
#!/bin/sh
GIT_WORK_TREE=/var/www/<website> git checkout -f
但是当我从本地机器推送到服务器中的 git 存储库时,我收到以下错误消息:
remote: error: unable to unlink old '<file>' (Permission denied)
这出现了很多次,几乎每个文件都有一条错误消息。
但是我有一个 README.txt 文件,我可以使用 git 更改它,这里是它的权限:
-rw-r--r-- 1 <serverusername> <serverusername> 2939 Aug 2 10:58 README.txt
但是具有完全相同的所有者和相同权限的其他文件,给我这个错误。
在另一个网站的另一个本地存储库中,我将本地计算机用户名作为所有者的文件,当我推送到远程服务器时,它会尊重文件的远程服务器所有者,并且工作起来很有魅力。
显然这似乎是一个与权限相关的错误,但我找不到修复它的方法,有什么建议吗?
最佳答案
当你必须取消链接文件时,你必须对文件所在的目录具有“w”权限,而不是对文件...
关于Git 推送错误 : Unable to unlink old (Permission denied),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11774397/