相关疑难解决方法(0)

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

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

173
推荐指数
8
解决办法
15万
查看次数

运行'git gui'时如何跳过"松散对象"弹出窗口

当我运行'git gui'时,我会得到一个弹出窗口

This repository currently has approximately 1500 loose objects.

然后建议压缩数据库.我以前做过这个,它将松散的对象减少到大约250,但这并不会抑制弹出窗口.再次压缩不会改变松散物体的数量.

我们当前的工作流程需要大量使用'rebase',因为我们正在从Perforce过渡,而Perforce仍然是规范的SCM.一旦Git是规范的SCM,我们将定期进行合并,并且应该大大减轻松散的对象问题.

与此同时,我真的想让这个"有用"的弹出窗口消失.

git garbage-collection rebase git-gui git-gc

115
推荐指数
3
解决办法
2万
查看次数