Git推送错误:无法取消旧链接(权限被拒绝)

cx6n0qe3  于 2022-09-21  发布在  Git
关注(0)|答案(4)|浏览(204)

在远程服务器中,我设置了一个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

但具有完全相同所有者和相同权限的其他文件会给我这个错误。

在另一个网站的本地存储库中,我有本地机器用户名为所有者的文件,当我推送到远程服务器时,它会尊重文件的远程服务器所有者,并像魔咒一样工作。

显然,这似乎是一个与权限相关的错误,但我找不到修复它的方法,有什么建议吗?

lmyy7pcs

lmyy7pcs1#

当你必须取消链接文件时,你必须对目录有‘w’权限,其中的文件是,不是文件...

laawzig2

laawzig22#

sudo chmod -R ug+w .;

此命令可以解决该问题。它授予对该文件夹的写入权限。

jk9hmnmh

jk9hmnmh3#

如果您使用的是任何IDE,最有可能的问题是该文件被某个进程使用。就像你的Tomcat可能在使用这个文件。尝试确定该特定进程并将其关闭。这应该可以解决你的问题了。

lg40wkob

lg40wkob4#

我认为问题可能出在文件夹的所有权上,因此请将其设置为当前用户所有权

sudo chown -R your_login_name /path/to/folder

您可以找到解决方案[此处][1]

相关问题