推送 gitolite-admin 时 Gitolite 给出错误消息:无法符号链接

jos*_*son 5 git gitolite

完整的错误消息是:

could not symlink /var/lib/gitolite/.gitolite/hooks/common/gitolite-hooked to subdir/myrepo.git/hooks
Run Code Online (Sandbox Code Playgroud)

当我对 gitolite-admin 进行任何更改并推送这些更改时,就会发生这种情况。这些钩子是做什么用的?我需要它们吗?符号链接有什么问题?

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

jos*_*son 4

好的,所以我知道为什么会发生这种情况。可能是因为我是 Git 菜鸟。我放在 $REPO_BASE 中的存储库是普通存储库,实际的源代码文件直接位于“根”目录下。

例如,/mnt/data/git/repositories/aproject/Main.cpp等等。事实证明,我需要在该路径下拥有实际的存储库,所以我这样做了(我可能只能使用 .git-folder 来实现此目的,但这就是我的做法)git clone --bare aproject.git aproject.git2 && rm -rf aproject.git && mv aproject.git2 aproject.git:

简而言之,我对存储库进行了裸克隆。所以现在,/mnt/data/git/repositories/aproject/我们实际上可以找到“hooks”文件夹(错误消息抱怨它找不到)。在新推送 gitolite-admin 存储库后,所有密钥都被添加到authorized_keys中,并且错误消息消失了。