How to copy a Gitlab project to another Gitlab repository?

Another option is to use Gitlab’s export/import feature.

Existing projects running on any GitLab instance or GitLab.com can be exported with all their related data and be moved into a new GitLab instance.

The difference with the other answer is that it also copies the following:

Exported contents

The following items will be exported:

  • Project and wiki repositories
  • Project uploads
  • Project configuration, excluding integrations
  • Issues with comments, merge requests with diffs and comments, labels, milestones, snippets, and other project entities
  • Design Management files and data
  • LFS objects
  • Issue boards
  • Pipelines history
  • Push Rules

So it depends on your use-case if you want to copy just the codes or if you also want to also migrate the other non-code items as listed above. The result would still be 2 separate projects (i.e. It will not appear as a fork).

Take note that:

The GitLab import/export button is displayed if the project import option is enabled.

To export, go to your project’s Settings > General page:

export

Then wait for the email with the downloadable tar.gz. file.
(On my version of Gitlab, if you click the button twice, you can download directly from the browser.)

Then to import, on Gitlab, select the New button > New Project from the top bar.
Then, select Import Project > Gitlab export.

Import

The UI screenshots above may change on future Gitlab versions. Again, make sure to refer to your Gitlab instance’s docs pages, or check out the public one from Gitlab EE: Project import/export .

Leave a Comment