在远程服务器中,我设置了一个POST-RECEIVE挂钩,以便对我的存储库进行GIT checkout :
# !/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
但具有完全相同所有者和相同权限的其他文件会给我这个错误。
在另一个网站的本地存储库中,我有本地机器用户名为所有者的文件,当我推送到远程服务器时,它会尊重文件的远程服务器所有者,并像魔咒一样工作。
显然,这似乎是一个与权限相关的错误,但我找不到修复它的方法,有什么建议吗?
4条答案
按热度按时间lmyy7pcs1#
当你必须取消链接文件时,你必须对目录有‘w’权限,其中的文件是,不是文件...
laawzig22#
此命令可以解决该问题。它授予对该文件夹的写入权限。
jk9hmnmh3#
如果您使用的是任何IDE,最有可能的问题是该文件被某个进程使用。就像你的Tomcat可能在使用这个文件。尝试确定该特定进程并将其关闭。这应该可以解决你的问题了。
lg40wkob4#
我认为问题可能出在文件夹的所有权上,因此请将其设置为当前用户所有权
您可以找到解决方案[此处][1]