Gitolite在推送Gitolite管理员时给出错误消息:无法符号链接

Gitolite在推送Gitolite管理员时给出错误消息:无法符号链接,git,gitolite,Git,Gitolite,完整的错误消息是: could not symlink /var/lib/gitolite/.gitolite/hooks/common/gitolite-hooked to subdir/myrepo.git/hooks 当我对gitolite管理员进行任何更改并推送这些更改时,就会发生这种情况。这些钩子是干什么用的?我需要它们吗?符号链接有什么问题 我已经在$REPO_BASE中为我的存储库指定了另一个位置,但是我使用chown命令使gitolite用户成为此路径和所有存储库的所有者,因此

完整的错误消息是:

could not symlink /var/lib/gitolite/.gitolite/hooks/common/gitolite-hooked to subdir/myrepo.git/hooks
当我对gitolite管理员进行任何更改并推送这些更改时,就会发生这种情况。这些钩子是干什么用的?我需要它们吗?符号链接有什么问题


我已经在
$REPO_BASE
中为我的存储库指定了另一个位置,但是我使用
chown
命令使gitolite用户成为此路径和所有存储库的所有者,因此这不应该是权限问题。

这要么是权限问题(您说不应该是),要么是chmod(访问)问题。
更确切地说,您可以使用两个目录的“ls-alrt”编辑您的问题。

如果在推送过程中失败,它将继续尝试在每次推送时声明它们。

好的,所以我找到了发生这种情况的原因。可能是因为我是Git的noob。我在$REPO_BASE中放置的存储库是普通存储库,实际的源代码文件直接位于“root”目录下

例如,
/mnt/data/git/repositories/aproject/Main.cpp
等等。事实证明,我需要将实际的存储库放在该路径下,所以我就这样做了(我可能只是能够使用.git文件夹来实现这一点,但我就是这样做的):
git克隆--bare aproject.git aproject.git2和&rm-rf aproject.git和&mv aproject.git2 aproject.git


简而言之,我对存储库做了一个简单的克隆。因此,现在,在
/mnt/data/git/repositories/aproject/
中,我们实际上可以找到“hooks”文件夹(错误消息称它找不到)。在新推送gitolite admin repo后,所有密钥都被添加到授权密钥中,错误消息消失。

我遇到了相同的错误,这是权限问题

确保您的Project.git归git用户所有,而不是root用户所有。


我想我会分享。

谢谢你的回答。你是对的,这可能是权限错误,但这次不是。请看我的回答(我找到了原因!)。注意,我也有同样的问题。我更容易删除repo(./)中除.git/之外的所有内容,然后将所有内容从./git移到./git中。最后,rmdir是空的.git.ThanksHey,非常感谢。您为我节省了大量时间!这里也有同样的问题,当我从旧服务器复制repos时。