没有命名空间的 Gitlab 克隆 URL?
Gitlab clone URL without namespace?
从 gitolite 迁移到 gitlab 时,我们发现 gitlab 不支持以下形式的克隆 URLs:
gitlab.example.com:<my-repository>.git
相反,它需要一个命名空间(组、用户名或子组),如下所示:
gitlab.example.com:<namespace>/<my-repository>.git
不幸的是,这会破坏多个构建脚本。
是否可以用其他方式做到这一点?
我已经尝试创建一个带有空白命名空间的组,但这是被禁止的。
我们预期的行为是在 URL 中不使用命名空间进行克隆,例如
git clone gitlab.example.com:<my-project>.git
考虑到 GitLab groups 的性质,您需要 将您的存储库放入一个专门的组中,比如“global
”。
gitlab.example.com:global/<my-repository>.git
但是:您还可以通过名为“globalGitLab
”的专用 SSH URL 引用这些存储库,并使用 ~/.ssh/config
文件将 globalGitLab
转换为 git@gitlab.example.com
用右键。
Host globalGitLab
HostName gitlab.example.com
User git
IdentityFile /path/to/right/id_rsa
仅此一项无法解决您的群组问题:globalGitLab:myrepo.git
行不通。
但是,您可以也设置全局Git配置:
git config --global url."globalGitLab:global/".insteadOf globalGitLab:
(参见“git config url.<base>.insteadOf
”)
这会将任何 globalGitLab:myrepo
(来自您的脚本)转换为 globalGitLab:global/myrepo
,这与 GitLab 的期望兼容!
从 gitolite 迁移到 gitlab 时,我们发现 gitlab 不支持以下形式的克隆 URLs:
gitlab.example.com:<my-repository>.git
相反,它需要一个命名空间(组、用户名或子组),如下所示:
gitlab.example.com:<namespace>/<my-repository>.git
不幸的是,这会破坏多个构建脚本。 是否可以用其他方式做到这一点?
我已经尝试创建一个带有空白命名空间的组,但这是被禁止的。
我们预期的行为是在 URL 中不使用命名空间进行克隆,例如
git clone gitlab.example.com:<my-project>.git
考虑到 GitLab groups 的性质,您需要 将您的存储库放入一个专门的组中,比如“global
”。
gitlab.example.com:global/<my-repository>.git
但是:您还可以通过名为“globalGitLab
”的专用 SSH URL 引用这些存储库,并使用 ~/.ssh/config
文件将 globalGitLab
转换为 git@gitlab.example.com
用右键。
Host globalGitLab
HostName gitlab.example.com
User git
IdentityFile /path/to/right/id_rsa
仅此一项无法解决您的群组问题:globalGitLab:myrepo.git
行不通。
但是,您可以也设置全局Git配置:
git config --global url."globalGitLab:global/".insteadOf globalGitLab:
(参见“git config url.<base>.insteadOf
”)
这会将任何 globalGitLab:myrepo
(来自您的脚本)转换为 globalGitLab:global/myrepo
,这与 GitLab 的期望兼容!