Migrieren eines vorhandenen Projekts zu GitHub

Abgeschlossen

Hier werden wichtige Aspekte für die Migration eines Projekts von einem veralteten Versionskontrollsystem zu GitHub behandelt.

Vorteile einer Migration zu GitHub

Die Vorzüge von GitHub werden in zahlreichen Büchern gelobt. Es liegt außerhalb des Umfangs dieses Moduls, Sie zum Handeln zu überzeugen. Wir können jedoch einige der wichtigsten Vorteile im Kontext von Themen, die Sie bei der Planung Ihrer Migration berücksichtigen müssen, zusammenfassen.

Versionskontrolle

GitHub verwendet ausschließlich Git, das wohl beste Versionskontrollsystem. Git ist jedoch sehr komplex und kann daher anspruchsvolle Programmierszenarios mit sich bringen, mit denen Ihr Team möglicherweise nicht vertraut ist. Branches und Pull Requests sind ein grundlegender Bestandteil des Alltags von Entwicklern, die Git verwenden. Daher müssen Sie wissen, wann und wie Sie diese effektiv einsetzen, um auf GitHub erfolgreich zu sein. Es lohnt sich für Ihr Team, sich zunächst in den GitHub-Flow einzuarbeiten, damit Sie sofort loslegen können.

Code in der Cloud

Große Mengen an Projektcode werden häufig noch in Legacy-Versionskontrollsystemen gespeichert, die hinter der Firewall des Unternehmens liegen. Wenn Sie zu GitHub migrieren, verlagern Sie Ihren Code auf die Cloudplattform von GitHub, wo Teammitglieder problemlos überall darauf zugreifen können. Diese Migration bietet eine gute Möglichkeit, die Richtlinie Ihres Teams für die Arten von Dateien und Daten zu überprüfen, die sich in der Versionskontrolle befinden. Als bewährte Methode sollten Sie davon ausgehen, dass alles, was Sie auf GitHub übernehmen, kompromittiert wird. Achten Sie darauf, keine vertraulichen Daten wie API-Schlüssel, Kennwörter oder andere Dateien einzuschließen, die vergleichbare Informationen enthalten.

Hinweis

GitHub bietet sowohl öffentliche als auch private Repositorys sowie detaillierte Zugriffssteuerungen für verschiedene Teile eines Repositorys. Dadurch können Sie steuern, für wen Ihre Projekte sichtbar sind und welche Aktionen ein bestimmter Benutzer durchführen kann.

Zusammenarbeit

GitHub ist durch Features wie Issues, Pull Requests und Code Reviews eine hervorragende Unterstützung für die Zusammenarbeit im Team. Der GitHub-Flow kann sich jedoch von den Praktiken unterscheiden, an die Ihr Team derzeit gewöhnt ist. Sie sollten vor der Migration überlegen, ob Ihr Team mit GitHub zurechtkommt, lieber gewohnte Abläufe beibehalten möchte oder einen Mittelweg bevorzugt.

Wenn es sich bei Ihrem Projekt um ein Open-Source-Projekt handelt, das externe Mitwirkende zulässt, profitieren Sie mit GitHub von den bestmöglichen Vorteilen.

Migrieren zu GitHub

Planungsaspekte

Die wichtigste Überlegung vor der Migration zu GitHub ist, ob Sie etwas beibehalten müssen, das über den aktuellen Zustand Ihrer Quelle hinausgeht. Wenn Sie ein neues Projekt mit dem vorliegenden Zustand Ihrer aktuellen Quelle starten möchten, sollten Sie dieses wie ein komplett neues Projekt behandeln und die Quelle in Ihr Repository hochladen.

Wenn Sie jedoch den Versionskontrollverlauf beibehalten möchten, sollten Sie einen Import mit dem GitHub-Migrationstool durchführen. Weitere Informationen zur Importunterstützung für verschiedene Versionskontrollplattformen finden Sie unter Importieren von Daten aus Drittanbieter-Quellcodeverwaltungssystemen.

Neben Git-Daten sollten Sie vielleicht auch Issues, Pull-Requests oder andere Daten aufbewahren. Die Unterstützung für diese Elemente variiert je nach Plattform und ist im Allgemeinen bei Communityprojekten verfügbar. In diesem Modul wird die Migration von Nicht-Git-Daten nicht behandelt.

Verarbeiten der derzeit in Ihrem Projekt gespeicherten Binärdateien

Eine bewährte Methode besteht darin, GitHub-Repositorys auf die Dateien zu beschränken, die zum Erstellen von Projekten benötigt werden. Vermeiden Sie das Übertragen großer Binärdateien wie Buildartefakte. Binärdateien wie Arbeitsblätter und Präsentationen können besser über geeignete Portale zur Verarbeitung und Versionierung nachverfolgt werden. Wenn Sie eine Versionsverwaltung für große Binärdateien einsetzen müssen, ziehen Sie die Git-Erweiterung Git LFS (Large File Storage) in Betracht.

Erstellen wichtiger Git-Dateien wie GITIGNORE-Dateien

Git unterstützt .gitignore-Dateien zum Erzwingen von Dateirichtlinien für die Versionskontrolle. Diese Dateien definieren die Suchmuster, mit denen Dateien und Ordner aus der Quellcodeverwaltung ausgeschlossen werden. Das Beispiel unten schließt rekursiv alle Ordner mit dem Namen Bin oder bin sowie deren Inhalt aus der Quellcodeverwaltung aus:

[Bb]in/

Sie erfahren hier mehr über das Ignorieren von Dateien. Sie können sich auch die Sammlung mit .gitignore-Startdateien ansehen, die für verschiedene Plattformen im GITIGNORE-Repository verfügbar sind.

Es gibt viele andere Dateien, die häufig in GitHub-Projekten verwendet werden, um Benutzern und Mitwirkenden von Repositorys unterschiedliche Richtlinien zu erklären. Auch wenn Ihr Projekt privat und auf eine bestimmte Zielgruppe beschränkt ist, kann es dennoch nützlich sein, diese Richtlinien explizit zu formulieren. Obwohl keine dieser Dateien erforderlich ist, sind einige der häufig verwendeten hier aufgeführt.

Datei Zweck
README.md Dies ist die Landing Page für das Verzeichnis. Diese Seite wird gerendert, wenn das zugehörige Verzeichnis auf GitHub angezeigt wird.
LICENSE.md Dies ist die Lizenz, unter der der Code bereitgestellt wird.
CONTRIBUTING.md Diese erläutert, wie Benutzer beim Projekt mitwirken sollten (z. B. Pull Request-Erwartungen).
SECURITY.md Erläutert die Sicherheitsrichtlinie für das Projekt. Sie enthält Anleitungen für Benutzer, die vertraulichen sicherheitsrelevanten Code oder Feedback übermitteln möchten, das nicht öffentlich werden sollte, bevor es behandelt werden konnte.

Unter Projekt für förderliche Beiträge einrichten finden Sie weitere Informationen.

Wie Sie Ihr Projekt in GitHub importieren

Sobald Sie Ihr Repository auf die Migration vorbereitet haben, können Sie zur Registerkarte Code Ihres GitHub-Repositorys navigieren. Über die Option Import code (Code importieren) können Sie das Quellrepository angeben.

Screenshot des Importierens von Code in ein GitHub-Repository.

Das GitHub-Migrationstool erledigt den Rest.

Screenshot des GitHub-Migrationstools