Veröffentlicht am: 28. Januar 2025

6 Minuten Lesezeit

Erste Schritte mit GitLab: So importierst du deine Projekte in GitLab

Erfahre, wie du deine Projekte aus verschiedenen Quellen wie Bitbucket, Gitea, GitHub und GitLab Self-Managed importierst.

Willkommen zu unserer Serie „Erste Schritte mit GitLab“, in der wir Neueinsteiger(inne)n helfen, sich mit der DevSecOps-Plattform von GitLab vertraut zu machen.

Um deine DevSecOps-Plattform von GitLab so gut wie möglich zu nutzen, ist es wichtig zu wissen, wie du Projekte in GitLab importieren kannst. Du hast bereits dein Konto eingerichtet, Benutzer(innen) eingeladen und sie entsprechend deines Anwendungsfalls oder deiner Teamstruktur organisiert. Nun musst du deine bestehenden Projekte in GitLab importieren und mit der Zusammenarbeit beginnen. Diese Projekte können lokale Dateien auf deinem Computer sein oder auf einer anderen Plattform für Quellcodeverwaltung gehostet sein. Sehen wir uns an, welche Möglichkeiten es gibt.

Lokale Projektdateien importieren

Du möchtest nicht jedes Mal bei Null anfangen, wenn du ein Projekt importierst. Befolge diese Schritte, um bestehende Projekte oder Anwendungen mit oder ohne Versionskontrolle in GitLab nutzen zu können.

Git-Projekt

  1. Wenn Git bereits in deinem lokalen Projekt initialisiert wurde, erstellst du ein neues Projekt in GitLab und rufst die SSH- oder HTTPS-URL ab, indem du oben rechts in deiner Projektseite auf die Schaltfläche Code klickst.

Ein neues Projekt in GitLab mit SSH/HTTPS-URLs erstellen

  1. Wechsele zu deinem Terminal und stelle sicher, dass du dich in deinem Projektordner befinden:
cd /project_folder  
  1. Sichere deinen bestehenden Git-Origin:

git remote rename origin old-origin

  1. Füge die GitLab-Remote-URL für den neuen Origin hinzu, wenn du SSH verwendest:
git remote add origin [[email protected]](mailto:[email protected]):gitlab-da/playground/abubakar/new-test-repo.git  

Und für HTTPS:

git remote add origin https://gitlab.com/gitlab-da/playground/abubakar/new-test-repo.git  
  1. Pushe dann alle bestehenden Branches und Tags zu GitLab:
git push --set-upstream origin --all  
git push --set-upstream origin --tags  

Alle deine Dateiprojektdateien, Branches und Tags werden an GitLab übertragen und du kannst mit der Zusammenarbeit beginnen.

Nicht-Git-Projekt

Wenn du Git in deinem Projekt nicht initiiert hast, musst du Git vorher initialisieren, vorhandene Dateien commiten und wie folgt in GitLab pushen:

git init --initial-branch=main  
git remote add origin [email protected]:gitlab-da/playground/abubakar/new-test-repo.git  
git add .  
git commit -m "Initial commit"  
git push --set-upstream origin main  

Import aus Online-Quellen

Wenn du dein Projekt auf GitLab.com oder anderen Plattformen hast und es in eine andere GitLab-Instanz (wie eine Self-Managed-Instanz) oder von einer anderen Plattform zu GitLab.com verschieben möchtest, bietet GitLab die Funktion zum Importieren von Projekten, wenn du ein neues Projekt erstellen möchtest.

Bildschirm „Neues Projekt erstellen“

Beim Importieren eines Projekts werden die Projektdateien und (je nach Quelle) einige andere Komponenten des Projekts migriert. Du kannst aus verschiedenen Quellen importieren, darunter Bitbucket, GitHub, Gitea und GitLab-Instanzen. Importquellen sind auf GitLab.com standardmäßig aktiviert, müssen aber von einem bzw. einer Administrator(in) für Self-Managed aktiviert werden. In den folgenden Abschnitten sehen wir uns einige dieser Quellen an.

Projekt aus Drittquellen importieren

GitLab-Quellen

Du kannst Projekte von GitLab.com und GitLab-Self-Managed-Instanzen mit der Funktion „Projekt exportieren“ in den Einstellungen eines Projekts exportieren.

Bildschirm „Projekt exportieren“

Das geht so:

  • Gehe zu den Einstellungen deines Projekts und klicke in den Bereich Allgemein.
  • Scrolle zum Abschnitt Erweitert.
  • Wähle Projekt exportieren aus.
  • Es wird eine Benachrichtigung angezeigt, die sagt: „Projekt-Export gestartet. Ein Download-Link wird per E-Mail verschickt und auf dieser Seite bereitgestellt.“
  • Nachdem der Export generiert wurde, kannst du dem Link in der E-Mail folgen oder die Seite mit den Projekteinstellungen aktualisieren, um die Option„ Export herunterladen “anzuzeigen.

Projekt importieren

Ein exportiertes GitLab-Projekt importieren

  • Klicke in deiner Ziel-GitLab-Instanz auf die Schaltfläche Neues Projekt.
  • Wähle Projekt importieren aus und klicke in der Liste der Importquellen auf GitLab-Export.
  • Gib einen Projektnamen an und wähle die Exportdatei aus. Klicke dann auf Projekt importieren.
  • Es wird die Seite „Import wird durchgeführt“ angezeigt. Nach Abschluss wirst du zum importierten Projekt weitergeleitet.

Abhängig von der Größe deines Projekts kann der Import unterschiedlich lange dauern. Beachte bitte, dass nicht alles in einem Projekt exportiert werden kann und einige Dinge nach dem Import anders sein können. In der Dokumentation findest du weitere Informationen zu den Einschränkungen. Wenn du eine ganze Gruppe anstelle einzelner Projekte migrieren möchtest, empfehlen wir dir die Direct-Transfer-Methode. Dabei wird eine Kopie einer ganzen Gruppe erstellt.

Drittanbieter

GitLab unterstützt den Import von Bitbucket Cloud, Bitbucket Server, FogBugz, Gitea und GitHub. Der Import ist für alle unterstützten Drittpartner ähnlich, der Hauptunterschied liegt dabei in der Authentifizierungsmethode. Sehen wir uns einige der Möglichkeiten an.

GitHub

Bildschirm „Authentifizierung mit GitHub“

Es gibt drei Methoden, um GitHub-Projekte in GitLab zu importieren:

Der Import mit GitHub OAuth und dem persönlichen Zugriffstoken ist ähnlich. Der Unterschied liegt darin, wie du GitLab autorisierst, auf deine Repositories zuzugreifen. Die OAuth-Methode ist einfacher, da du nur auf die Schaltfläche „Mit GitHub autorisieren“ klicken musst und du zu deinem GitHub-Konto weitergeleitet wirst, um die Verbindung zu autorisieren. Dann wird die Liste deiner Projekte geladen und du kannst auswählen, welche du importieren möchtest.

Bildschirm „Repositories aus GitHub importieren“

Alternativ kannst du ein persönliches GitHub-Zugriffstoken generieren, den Geltungsbereich repo und read:org auswählen und es dann auf der Seite „Import“ bereitstellen. Für API-Importe kannst du dasselbe persönliche Zugriffstoken mit unseren Import-REST-API-Endpunkten in deinem Skript oder deiner Anwendung verwenden.

In dieser Demo erklärt GitLabs Senior Developer Advocate Fernando Diaz, wie man ein Projekt mit der OAuth-Methode von GitHub importiert:

In der Importdokumentation erfährst du mehr über Voraussetzungen, bekannte Probleme, den Import von GitHub Enterprise sowie andere wichtige Themen.

Bitbucket

Der Import von Projekten aus Bitbucket ähnelt dem Import von GitHub. Während OAuth für Bitbucket Cloud, die SaaS-Version von Bitbucket, verwendet werden kann, musst du für Bitbucket Server, die selbst gehostete Version für Unternehmen, eine URL, einen Benutzernamen und ein persönliches Zugriffstoken angeben. Wenn du auf der Seite „Import“ auf die Option „Bitbucket Cloud“ klickst, gelangst du automatisch zur Atlassian-Authentifizierung für Bitbucket.

Projekt aus Bitbucket importieren

Du kannst Bitbucket-Projekte auch mit der Import-API von GitLab importieren.

Gitea

Projekt aus Gitea importieren

Für den Import von Projekten aus Gitea musst du ein persönliches Zugriffstoken auf der Gitea-Plattform erstellen und es zusammen mit der Gitea-Server-URL auf der GitLab-Importseite angeben. OAuth-Authentifizierung wird nicht unterstützt.

Generisches Remote-Git-Repository

Projekt aus Remote-Git-Repository importieren

Wenn dein Git-Anbieter nicht unterstützt wird oder der Import mit den unterstützten Methoden nicht möglich ist, kannst du ein Repository mit der zugänglichen URL https:// oder git:// importieren. Wenn sie nicht öffentlich zugänglich ist, gibst du die URL des Repositorys zusammen mit dem Benutzernamen und dem Passwort (oder gegebenenfalls dem Zugriffstoken bei Multi-Faktor-Authentifizierung) an.

Diese Methode kann auch verwendet werden, um eine Kopie eines Remote-Projekts beizubehalten und synchron zu halten, d. h. zu spiegeln. Mit der Spiegelung kannst du Repositories auf verschiedenen Plattformen verwalten und synchronisieren. Dies kann gewünscht werden, um den privaten und den öffentlichen Zugang zum Projekt zu trennen und gleichzeitig sicherzustellen, dass beide Enden die gleiche Kopie haben, was beim Open-Sourcing interner Projekte nützlich ist. Es kann auch bei der Zusammenarbeit mit Auftragnehmern verwendet werden, wenn beide Parteien unterschiedliche Plattformen verwenden und der Zugriff auf die Codebase auf beiden Seiten erforderlich ist.

Zusammenfassung

Der Import und die Migration zwischen GitLab-Instanzen und aus anderen Quellen ist ein wichtiger Prozess, der gut geplant werden muss. So kann man klar darlegen, was mit welcher Methode importiert wird. Während bei den meisten Methoden von Drittanbietern Projektelemente importiert werden, einschließlich Dateien, Tickets und Merge Requests, sind bei einigen Methoden Probleme und Einschränkungen bekannt. Der Abschnitt „GitLab-Import“ der Dokumentation enthält detaillierte Informationen zu allen unterstützten Methoden, damit du deine Migration entsprechend planen kannst.

Möchtest du dein Lernen auf ein neues Niveau heben? Registriere dich für die englischsprachigen Kurse der GitLab University. Du kannst auch sofort mit einer kostenlosen 60-tägigen Testversion von GitLab Ultimate loslegen.

Wir möchten gern von dir hören

Hat dir dieser Blogbeitrag gefallen oder hast du Fragen oder Feedback? Erstelle ein neues Diskussionsthema im GitLab Community-Forum und tausche deine Eindrücke aus.

Mehr als 50 % der Fortune-100-Unternehmen vertrauen GitLab

Stelle jetzt bessere Software schneller bereit

Erlebe, was dein Team mit der intelligenten

DevSecOps-Plattform erreichen kann.