Git 推送错误 : Unable to unlink old (Permission denied)

标签 git git-push git-checkout

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

相关文章:

从外面git checkout分支

git - 是否有更简单的方法从单一存储库发布到不同的存储库?

git - Git .ssh 的默认路径是什么?

git - 在重置之前将 git 重置撤消至未提交状态?

git-push - git push 挂起,什么也不做

git - 新提交的 Git 分支没有显示

Eclipse 创建 git 仓库失败

git - 是否可以从 Google 云端硬盘管理 GIT 非裸仓库?

git - Git Pull 和 Git Push 之间的死锁

git - 理解 git push 命令