在远程服务器中,我设置了一个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)
但是具有完全相同的所有者和相同权限的其他文件会给我这个错误.
在另一个网站的另一个本地存储库中,我将本地计算机用户名作为所有者的文件,当我推送到远程服务器时,它尊重文件的远程服务器所有者,并像魅力一样工作.
显然它似乎与权限相关的错误,但我找不到修复它的方法,有什么建议吗?
当我做git提交时,我看到以下内容
>$ git commit -a
warning: unable to unlink .git/objects/63/tmp_obj_kK6IC9: Invalid argument
warning: unable to unlink .git/objects/2c/tmp_obj_SFNGla: Invalid argument
Run Code Online (Sandbox Code Playgroud)
我仍然可以执行git commit.但是,我想知道如何摆脱警告.
我在其他Windows机器上安装了msysgit,没有任何问题.在这个Vista 64位Ultimate盒子上,我安装了3个最新版本的msysgit.在所有三个安装中,当我在这里执行"git bash"时,我在命令窗口中得到了这个:
sh.exe": fork: Permission denied
sh.exe"-3.1$
Run Code Online (Sandbox Code Playgroud)
git命令不起作用.我收到相同的权限被拒绝消息.关于如何解决这个问题的任何线索?
更新
此外,当我在这里"git gui"时 - 我得到:
Cannot determine Git version.
couldn't execute "C\...\git-core\git.exe
Git Gui requires Git 1.5.0 or later
Run Code Online (Sandbox Code Playgroud)
我使用的是比1.5.0更新的版本.