3

我对 Git 和 Gitolite 还很陌生,但昨天我设法让它运行起来。

问题是,我有一个包含许多项目的文件夹(我们称之为/projects),我正在尝试将它们迁移到 Git。我将 Gitolites/repositories文件夹符号链接到这个/projects文件夹,所以现在每个新的 repo 都在/projects文件夹中创建。它工作正常。

但是现在我想为文件夹中的每个项目(子文件夹)创建一个 repo /projects。如果我在 Gitolite 中初始化一个新的仓库(我们称之为它/myproject),它会创建一个名为的新文件夹,myproject.git而不是将旧myproject文件夹与我已经在使用的文件一起使用。

那么,如何使用 Gitolite 将所有单个项目文件夹转换为 Git 存储库?我不想手动下载和附加所有这些文件。

4

1 回答 1

3

这就是Gitolite 的工作方式:它管理存储库(xxx.git文件夹),而不是工作树(充满文件的目录,例如projects/myprojects/)。

所以:不要将存储库符号链接到 /projects:两者的目的截然不同。

您可以直接在自己/projects/myproject/.git目录


Pierre De LESPINAY在官方文档的评论中提到了 s:

附录 1:将现有的 repos 引入 gitolite

  • 将存储库移至$HOME/repositories.
  • 确保:
    • 它们都是裸回购。
    • 所有回购名称都以“ .git”结尾。
    • 所有文件和目录都由 gitolite 托管用户拥有和可写(尤其是如果您以 root 身份复制它们)。
  • 运行gitolite setup
    如果你忘记了这一步,你也可以忘记写访问控制!

回到你的工作站:

  • 如果存储库是普通存储库,请将它们添加到conf/gitolite.conf管理存储库的克隆中,然后提交并推送更改。
  • 如果 repos 是已经匹配 conf 文件中某些 repo 正则表达式的通配符 repos,则需要手动创建 gl-creator 文件,如下所示:
echo username > ~/repositories/path/to/repo.git/gl-creator
于 2013-01-29T18:34:01.960 回答