Veröffentlicht am: 28. Januar 2025
6 Minuten Lesezeit
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.
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.
cd /project_folder
git remote rename origin old-origin
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
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.
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
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.
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.
Du kannst Projekte von GitLab.com und GitLab-Self-Managed-Instanzen mit der Funktion „Projekt exportieren“ in den Einstellungen eines Projekts exportieren.
Das geht so:
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.
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.
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.
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.
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.
Du kannst Bitbucket-Projekte auch mit der Import-API von GitLab 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.
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.
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.