如何在 GitLab 中设置默认存储库

How to set up a default repository in GitLab

我想在每个新项目附带的 GitLab 中设置一个默认存储库。因此,当我签出新项目时,我并没有签出一个空的回购协议,而是一个填满了我的默认项目文件夹和文件的回购协议。

有人知道怎么做吗?

选项 1

您可以使用所有默认文件夹和文件设置一个基础项目,然后克隆该项目作为每个新项目的第一步。克隆后,将遥控器更改为指向新的远程仓库并推送到它。

工作流程如下所示:

  1. 在 GitLab 上创建新项目并复制克隆 URL。
  2. 将基础项目克隆到一个新目录并导航到该目录。
  3. 更改遥控器 URL 以指向您的新项目的克隆 URL。
  4. 将 master 分支推送到新的 repo。

对应的命令是:

git clone https://gitlab.com/username/base-project new-project
cd new-project
git remote set-url origin https://gitlab.com/username/new-project
git push -u origin master

选项 2

您可以从基础项目中分叉出每个新项目。这样做的好处是可以完全在 GitLab UI 中完成。但是,基础项目必须位于单独的命名空间 (username or group) 中,因为 GitLab 不允许您将项目分叉到与原始项目相同的命名空间中。

工作流程如下所示:

  1. 分叉基础项目。
  2. 进入新项目的设置,解除fork关系。您永远不会将此项目合并回基础项目,因此您不需要它。
  3. 重命名新项目。

选项 3

Prior to GitLab v8.6.0 this method would expose the full URL of the repo being imported in the logs. If you import from a private repo and put your username/password in the URL they will be readable in plaintext in the log files. See this issue for more info.

您每次都可以将基础项目作为新项目导入。这还有一个好处,它可以完全在 GitLab UI 中完成,并且您可以在开始导入之前重命名项目,因此您不必担心像选项 2 中那样有另一个命名空间。这种方法如果您的 GitLab 实例允许从任何 repo URL.

导入,则效果最佳

工作流程如下所示:

  1. 复制基础仓库的 HTTPS 克隆 URL。
  2. 在 GitLab 中单击 "New Project",然后 select 选择 "Import Project from any repo by URL"
  3. 粘贴到基础仓库的 URL 中。如果您的基础回购不公开,那么您需要将 username/password 添加到 URL,如下所示:https://username:password@gitlab.company.com/username/base-project.git.

请注意,如果您必须在导入 URL 中包含密码,并且您的用户名或密码中包含 @ 符号,则您必须 url 编码它。所以 p@ssword 会变成 p%40ssword.