我对Git和Gitolite很新,但昨天我设法让它运行起来。
问题是,我有一个包含许多项目的文件夹(让我们称之为/projects
),我试图将它们迁移到Git。我将Gitolites /repositories
文件夹符号链接到此/projects
文件夹,因此现在每个新的repo都在/projects
文件夹中创建。它很好用。
但是现在我想为/projects
文件夹中的每个项目(子文件夹)创建一个repo。如果我在Gitolite中初始化一个新的仓库(让我们称之为/myproject
),它会创建一个名为myproject.git
的新文件夹,而不是使用旧的myproject
文件夹和文件I&# 39;我已经在工作了。
那么,如何使用Gitolite将所有单个项目文件夹转换为Git存储库?我不想手动下载并附加所有这些文件。
答案 0 :(得分:3)
这就是Gitolite works的方式:它管理裸存储库(xxx.git
文件夹),而不是工作树(完整文件的目录,如projects/myprojects/
)
所以:不要将存储库符号链接到/ projects:两者的目的都非常不同。
您可以直接在自己的目录(/projects/myproject/.git
)中初始化和导入每个项目,然后按照“how to configure a migrated git repository in gitolite”将其导入Gitolite。
Pierre De LESPINAY提及s in the comments官方文档:
- 将回购移至
$HOME/repositories
。- 确保:
- 他们都是裸露的回购。
- 所有回购品名称均以“
.git
”结尾。- 所有文件和目录都由gitolite托管用户拥有和写入(特别是如果您以root用户身份复制它们)。
- 运行
gitolite setup
。
如果您忘记了这一步,您也可以忘记写访问控制!回到你的工作站上:
- 如果repos是正常的repos,请将它们添加到admin repo的克隆中的
conf/gitolite.conf
,然后提交并推送更改。- 如果repos是已经与conf文件中的某些repo正则表达式匹配的通配符repos,则需要手动创建gl-creator文件,如下所示:
echo username > ~/repositories/path/to/repo.git/gl-creator