Gitolite 在推送 gitolite-admin : could not symlink 时给出错误信息

标签 git gitolite

完整的错误信息是:

could not symlink /var/lib/gitolite/.gitolite/hooks/common/gitolite-hooked to subdir/myrepo.git/hooks

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

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

最佳答案

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

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

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

关于Gitolite 在推送 gitolite-admin : could not symlink 时给出错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7049484/

相关文章:

git - 如何在本地系统中修改预提交 Hook

git - 重建 git 历史记录的脚本,对每个版本应用代码清理

即使所有 merge 冲突都已解决,Git rebase --continue 也会提示

git - 将 nodejs 部署到 heroku

git - 如何在github上自动提交和推送?

git - 龟GIT + Gitolite 3

linux - gitolite 包不创建用户

git - 从 docker 容器中的 gitolite repo 自动 pull

ssh - gitolite无法与sshd服务一起使用