rfc*_*484 173 git git-push git-checkout
在远程服务器中,我设置了一个post-receive hook,以便对我的存储库进行git checkout:
#!/bin/sh
GIT_WORK_TREE=/var/www/<website> git checkout -f
Run Code Online (Sandbox Code Playgroud)
但是当我从本地机器推送到服务器中的git存储库时,我收到以下错误消息:
remote: error: unable to unlink old '<file>' (Permission denied)
Run Code Online (Sandbox Code Playgroud)
这出现了很多次,几乎每个文件都有一条错误消息.
但是我有一个README.txt文件,我可以使用git更改,这是它的权限:
-rw-r--r-- 1 <serverusername> <serverusername> 2939 Aug 2 10:58 README.txt
Run Code Online (Sandbox Code Playgroud)
但是具有完全相同的所有者和相同权限的其他文件会给我这个错误.
在另一个网站的另一个本地存储库中,我将本地计算机用户名作为所有者的文件,当我推送到远程服务器时,它尊重文件的远程服务器所有者,并像魅力一样工作.
显然它似乎与权限相关的错误,但我找不到修复它的方法,有什么建议吗?
Jan*_*rek 305
当您必须取消链接文件时,您必须拥有目录的权限'w',在哪个文件中,而不是文件...
小智 28
我认为问题可能出在文件夹的所有权上,因此将其设置为当前用户所有权
sudo chown -R your_login_name /path/to/folder
Run Code Online (Sandbox Code Playgroud)
您可以在 [此处][1] 中找到解决方案
我有同样的问题,上面的解决方案都没有为我工作.我删除了有问题的文件夹.然后:
git reset --hard
Run Code Online (Sandbox Code Playgroud)
删除任何延迟文件以清除git状态,然后执行:
git pull
Run Code Online (Sandbox Code Playgroud)
它终于奏效了.
注意:例如,如果文件夹是包含构建文件的公用文件夹,请记住重建文件
| 归档时间: |
|
| 查看次数: |
147265 次 |
| 最近记录: |