gpt4 book ai didi

git - 有没有办法诊断为什么 git init --bare 不创建特定目录?

转载 作者:太空狗 更新时间:2023-10-29 13:21:28 25 4
gpt4 key购买 nike

我正在尝试在我的 LEDE-Project 路由器上运行 Gitolite。我已按照说明进行操作 provided here将必要的依赖项令人满意地安装到我的路由器上。我的路由器报告 Git 版本2.11.0,我运行它的计算机也是如此。 LEDE-Project 和 OpenWRT 上的 Git 包 can be found here ,因为他们正在共享这些存储库。

当我以 Gitolite 的方式创建一个新的仓库时,我得到了类似这样的错误信息:

2017-03-06.03:11:23 28046 die could not symlink /root/.gitolite/hooks/common/update to gitolite-admin.git/hooks<> at /root/gitolite/src/lib/Gitolite/Conf/Store.pm line 368.<>

经过一夜安眠之后,我最终找到了这个原因 this specific mailing list post ,这表明 git init --bare 没有生成正确的目录。

Try "git init --bare" in an empty directory and tell me if you see a .git/hooks directory in it.

Assuming you don't, you'll have to fix that somehow. Gitolite expects a 'git init --bare' to create a hooks directory.

似乎是一个合理的假设。我的机器做得很好。

git init --bare foo
Initialized empty Git repository in /home/makoto/workspace/foo/foo/
cd ~/foo
ls -la
drwxrwxr-x 7 makoto makoto 4096 Mar 6 13:15 .
drwxrwxr-x 3 makoto makoto 4096 Mar 6 13:15 ..
drwxrwxr-x 2 makoto makoto 4096 Mar 6 13:15 branches
-rw-rw-r-- 1 makoto makoto 66 Mar 6 13:15 config
-rw-rw-r-- 1 makoto makoto 73 Mar 6 13:15 description
-rw-rw-r-- 1 makoto makoto 23 Mar 6 13:15 HEAD
drwxrwxr-x 2 makoto makoto 4096 Mar 6 13:15 hooks
drwxrwxr-x 2 makoto makoto 4096 Mar 6 13:15 info
drwxrwxr-x 4 makoto makoto 4096 Mar 6 13:15 objects
drwxrwxr-x 4 makoto makoto 4096 Mar 6 13:15 refs

在我的路由器上......没那么多。

git init --bare foo
Initialized empty Git repository in /root/foo/
cd foo/
ls -la
drwxr-xr-x 4 root root 4096 Mar 6 13:21 .
drwxr-xr-x 1 root root 4096 Mar 6 13:21 ..
-rw-r--r-- 1 root root 23 Mar 6 13:21 HEAD
-rw-r--r-- 1 root root 66 Mar 6 13:21 config
drwxr-xr-x 4 root root 4096 Mar 6 13:21 objects
drwxr-xr-x 4 root root 4096 Mar 6 13:21 refs

就 Gitolite 而言,问题是 hooks/ 文件夹不存在。不过,我不明白为什么会这样。

有没有办法让我诊断在 git init --bare 运行时创建了哪些文件夹?我觉得如果我能弄清楚命令运行时实际执行的是什么,我就能弄清楚其余部分。

最佳答案

就好像在您的服务器上,template used for creating a new repo内容不完整(即没有钩子(Hook))

该模板文件夹将在 <git>/share/git-core/templates 中, 与 <git>作为安装文件夹(在 Windows 上为 ./mingw64/share/git-core/templates ,在 Linux 上为 /usr/share/git-core/templates )

缺少 Hook 可能是出于安全原因不想在其上执行任何 Hook 的服务器上有意的。 (例如,您不能将 Hook 添加到 GitHub 裸仓库)

关于git - 有没有办法诊断为什么 git init --bare 不创建特定目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42635091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com