在现有文件夹中初始化gitolite仓库

3

我对Git和Gitolite比较新,但昨天我成功地将它们搭建起来了。

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

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

那么,我该如何将所有单独的项目文件夹转换为Git仓库,使用Gitolite?我不想手动下载和添加所有这些文件。

1个回答

3
这就是Gitolite的工作方式:它管理仓库(即xxx.git文件夹),而不是工作树(充满文件的目录,例如projects/myprojects/)。
因此,请勿将存储库符号链接到/projects目录:两者用途完全不同。
您可以在它们自己的目录中直接初始化和导入每个项目(/projects/myproject/.git),然后按照“如何在Gitolite中配置迁移的git存储库”进行导入。

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

" 附录1:将现有存储库引入 gitolite"

注:保留原文链接。
将存储库移动到$HOME/repositories。 确保:
  • 它们都是裸仓库。
  • 所有存储库名称以".git"结尾。
  • 所有文件和目录都由gitolite托管用户拥有和可写(如果您以root身份复制它们,则尤其如此)。
运行gitolite setup。 如果忘记此步骤,则可以忽略写访问控制! 回到您的工作站:
  • 如果存储库是普通存储库,请将它们添加到管理员存储库克隆中的conf/gitolite.conf中,然后提交并推送更改。
  • 如果存储库是已经与conf文件中某些存储库正则表达式匹配的通配符存储库,则需要手动创建gl-creator文件,如下所示:
echo username > ~/repositories/path/to/repo.git/gl-creator

如果我理解你的意思,Gitolite不会像标准的Git存储库一样管理我的项目文件? - Armin Cifuentes
@ArminCifuentes Gitolite是一个授权层:它只是接受或拒绝您的git克隆/推送/拉取命令到指定的“repositories /”,对此,不需要完整的仓库,只需要一个裸仓库即可。 - VonC
将现有仓库引入gitolite的官方说明对我来说很有效。 - Pierre de LESPINAY
1
@PierredeLESPINAY 很好的观点。我已经在答案中包含了这些指令,以增加可见性。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接