Übung: Hochladen Ihres Projekts auf GitHub

Abgeschlossen

Mithilfe von GitHub Importer, der Befehlszeile oder externen Migrationstools können Sie Repositorys in GitHub importieren.

Informationen zu GitHub Importer

Mithilfe von GitHub Importer kannst du Quellcode in Subversion, Mercurial, Team Foundation Version Control (TFVC) oder einem anderen Git-Repository zu GitHub verschieben. GitHub Importer ist ein Tool, das Quellcode-Repositorys, einschließlich Commits und Revisionsverlauf, für Dich schnell in GitHub importiert.

Bei einem Import können Sie je nach Versionskontrollsystem, aus dem Sie importieren, einige der folgenden Aufgaben ausführen. Authentifizieren Sie sich bei Ihrem Remote-Repository, aktualisieren Sie die Autorenzuordnung des Commit, importieren Sie Repositorys mit großen Dateien, oder entfernen Sie große Dateien, wenn Sie Git Large File Storage nicht verwenden möchten.

Importaktion Subversion Mercurial TFVC Git
Mit Remote-Repository authentifizieren X X X X
Zuordnung von Commit-Autoren aktualisieren X X X
Große Dateien in Git Large File Storage verschieben X X X
Große Dateien aus Deinem Repository entfernen X X X

Ein Repository mit GitHub Importer importieren

Mithilfe des Tools GitHub Importer können Sie ein Projekt, das in einem anderen Versionskontrollsystem gehostet wird, automatisch in GitHub importieren. GitHub Importer eignet sich nicht für alle Importe. Wenn Ihr vorhandener Code beispielsweise in einem privaten Netzwerk gehostet wird, kann unser Tool nicht darauf zugreifen. In diesen Fällen empfehlen wir, Git-Repositorys über die Befehlszeile zu importieren, oder für Projekte, die aus anderen Versionskontrollsystemen importiert wurden, ein externes Quellcodemigrationstool zu verwenden.

Wenn Sie die Commits in Ihrem Repository während des Imports mit den GitHub-Benutzerkonten der Autoren abgleichen möchten. Stellen Sie zunächst sicher, dass jeder Mitwirkende in Ihrem Repository über ein GitHub-Konto verfügt, bevor Sie mit dem Import beginnen.

Für Repositorys und einzelne Dateien gelten Größenbeschränkungen. Weitere Informationen finden Sie unter Informationen zu großen Dateien auf GitHub.

Führen Sie die folgenden Schritte aus, um ein Repository zu importieren:

  1. Wählen Sie in der rechten oberen Ecke einer beliebigen Seite das Pluszeichen (+) aus und anschließend Repository importieren.

    Screenshot: Schaltfläche „Repository importieren“

  2. Gib unter „Your old repository's clone URL“ (Klon-URL Deines alten Repositorys) die URL des Projekts ein, das Du importieren möchtest.

    Screenshot: Textfeld der URL des alten Repositorys

  3. Wählen Sie Ihr Benutzerkonto oder eine Organisation als Besitzer des Repositorys aus, und geben Sie einen Namen für das Repository in GitHub ein.

    Screenshot: Name des Besitzers des neu importierten Repositorys

  4. Gib an, ob das neue Repository public oder private sein soll. Weitere Informationen finden Sie unter Festlegen der Sichtbarkeit des Repositorys.

    Screenshot: Optionen „Öffentlich“ oder „Privat“ für das neue Repository

  5. Überprüfe die eingegebenen Informationen, und wähle dann Import starten aus.

    Screenshot: Schaltfläche „Import starten“ zum Importieren eines neuen Repositorys

  6. Wenn dein altes Projekt mit einem Kennwort geschützt war, gib deine Anmeldeinformationen für dieses Projekt ein und wähle dann Absenden aus.

    Screenshot: Eingabemöglichkeit der Anmeldeinformationen für Ihr altes Repository

  7. Wenn mehrere Projekte unter der Klon-URL deines alten Projekts gehostet werden, wähle das Projekt aus, das du importieren möchtest, und wähle Absenden aus.

    Screenshot: Auswählen von Projekten unter derselben URL

  8. Wenn dein Projekt Dateien mit mehr als 100 MB enthält, wähle aus, ob du die größeren Dateien mit Git Large File Storage importieren möchtest, und wähle dann Weiter aus.

    Screenshot: Dateien, die für den Import mit Git LFS geeignet sind

Wenn das Repository vollständig importiert ist, erhalten Sie eine E-Mail.

Zuordnung von Commit-Autoren mit GitHub Importer aktualisieren

Während eines Imports kannst du die Commits in deinem Repository mit den GitHub-Konten der Commitautor*innen abgleichen. GitHub Importer sucht nach GitHub-Benutzern, deren E-Mail-Adressen mit denen der Autoren der Commits im importierten Repository übereinstimmen. Dann kannst Du einen Commit mit seinem Autoren verbinden, entweder mittels seiner E-Mail-Adresse oder seinem GitHub-Benutzernamen.

Commit-Autoren aktualisieren

Führen Sie die folgenden Schritte aus, um einen Commitautor zu aktualisieren:

  1. Wählen Sie nach dem Import Ihres Repositorys auf der Importstatusseite Autoren abgleichen aus.

    Screenshot der Schaltfläche „Autoren abgleichen“.

  2. Wähle neben dem Autor, dessen Informationen du aktualisieren möchtest, Verbinden aus.

    Screenshot des Prozesses Verbinden des Commit-Autors.

  3. Gib die E-Mail-Adresse oder den GitHub-Benutzernamen des Autors ein, und drücke dann die EINGABETASTE.

Commits einem GitHub-Benutzer mit einer öffentlichen E-Mail-Adresse zuordnen

Wenn der Autor eines Commits in Ihrem importierten Repository über ein GitHub-Konto verfügt, das der E-Mail-Adresse zugeordnet ist, die er zum Erstellen des Commits verwendet hat, und er seine Commit-E-Mail-Adresse nicht als privat festlegt hat. Anschließend vergleicht GitHub Importer die E-Mail-Adresse die dem Commit zugeordnet ist mit der öffentlichen E-Mail-Adresse, die dessen GitHub-Konto zugeordnet ist, und ordnet den Commit dem GitHub-Konto zu.

Commits einem GitHub-Benutzer ohne öffentliche E-Mail-Adresse zuordnen

Wenn der Autor eines Commits in Ihrem importierten Repository keine öffentliche E-Mail-Adresse in seinem GitHub-Profil festgelegt oder seine Commit-E-Mail-Adresse als privat festgelegt hat. Dann kann GitHub Importer möglicherweise nicht die E-Mail-Adresse abgleichen, die dem Commit mit dessen GitHub-Konto zugeordnet ist.

Der Commitautor kann dieses Problem beheben, indem er seine E-Mail-Adresse als privat festlegt. Ihre Commits werden dann <username>@users.noreply.github.com zugeordnet und die importierten Commits werden seinem GitHub-Konto zugeordnet.

Commits über die E-Mail-Adresse zuordnen

Wenn die E-Mail-Adresse des Autors nicht mit seinem GitHub-Konto verknüpft ist, kann er die Adresse nach dem Import zu seinem Konto hinzufügen, dann die Commits werden ordnungsgemäß zugeordnet.

Wenn der Autor kein GitHub-Konto hat, ordnet GitHub Importer seinen Commit der E-Mail-Adresse zu, die den Commits zugeordnet ist.

Importieren eines GitHub-Repositorys über die Befehlszeile

Sollte GitHub Importer nicht für Ihre Anforderungen geeignet sein, weil z. B. Ihr vorhandener Code in einem privaten Netzwerk gehostet wird, wird der Import über die Befehlszeile empfohlen.

Bevor Du startest, stelle sicher, dass Dir Folgendes vorliegt:

  • Ihr GitHub-Benutzername
  • Die Klon-URL für das externe Repository, z. B. https://external-host.com/user/repo.git oder git://external-host.com/user/repo.git (eventuell mit user@ vor dem Domänennamen external-host.com)

Zu Demonstrationszwecken verwenden wir:

  • Ein externes Konto mit dem Namen ext-user
  • Einen externen Git-Host namens https://external-host.com
  • ein persönliches GitHub-Benutzerkonto mit dem Namen „ghuser“
  • ein Repository auf GitHub.com mit dem Namen „repo.git“

Führen Sie die folgenden Schritte aus, um Ihr externes Repository zu importieren:

  1. Erstellen Sie ein neues Repository in GitHub. Sie importieren Ihr externes Git-Repository in dieses neue Repository.

  2. Erstelle in der Befehlszeile einen „leeren“ Klon des Repositorys mit der externen Klon-URL. Dieser Befehl erstellt eine vollständige Kopie der Daten, aber ohne ein Arbeitsverzeichnis zum Bearbeiten von Dateien, und stellt einen sauberen, frischen Export aller alten Daten sicher.

    $ git clone --bare https://external-host.com/ext-user/repo.git
    #Makes a bare clone of the external repository in a local directory 
    
  3. Übertragen Sie das lokal geklonte Repository mit der Option „Mirror“ zu GitHub. Dadurch wird sichergestellt, dass alle Verweise wie Branches und Tags in das importierte Repository kopiert werden.

    $ cd repo.git
    $ git push --mirror https://github.com/ghuser/repo.git
    #Pushes the mirror to the new repository on GitHub.com 
    
  4. Entferne das temporäre lokale Repository.

    $ cd ..
    $ rm -rf repo.git 
    

Hinzufügen von lokal gehostetem Code zu GitHub

Wenn Quellcode oder Repositorys lokal auf Ihrem Computer oder in Ihrem privaten Netzwerk gespeichert sind, können Sie diese GitHub hinzufügen, indem Sie Befehle in ein Terminal eingeben. Entweder durch direkte Eingabe der Git-Befehle, oder Verwendung der GitHub CLI.

Die GitHub CLI ist ein Open-Source-Tool, mit dem Sie GitHub über die Befehlszeile Ihres Computers nutzen können. Mit der GitHub CLI ist es einfacher, über die Befehlszeile ein vorhandenes Projekt GitHub hinzuzufügen. Weitere Informationen zur GitHub CLI finden Sie unter Informationen zur GitHub CLI.

Hinzufügen eines lokalen Repositorys zu GitHub mithilfe der GitHub CLI

Führen Sie diese Schritte aus, um ein lokales Repository mit der GitHub CLI hinzuzufügen:

  1. Navigieren Sie in der Befehlszeile zum Stammverzeichnis Ihres Projekts.

  2. Initialisiere das lokale Verzeichnis als Git-Repository.

    git init -b main
    
  3. Stagen und committen Sie alle Dateien in Ihrem Projekt.

    git add . && git commit -m "initial commit"
    
  4. Verwenden Sie gh repo create subcommand, um ein Repository für Ihr Projekt in GitHub zu erstellen. Wenn du aufgefordert wirst, wähle Vorhandenes lokales Repository zu GitHub pushen aus, und gib den gewünschten Namen für dein Repository ein. Wenn dein Projekt anstelle deines Benutzerkontos zu einer Organisation gehören soll, gib den Organisationsnamen und den Projektnamen mit organization-name/project-name ein.

  5. Befolge die interaktiven Eingabeaufforderungen. Um das Remoterepository hinzuzufügen und es zu pushen, bestätige die Aufforderung mit Ja, um das Remoterepository hinzuzufügen und die Commits in den aktuellen Branch zu pushen.

  6. Du kannst auch alle Eingabeaufforderungen überspringen. Gib dazu den Pfad zum Repository mit dem Flag --source an, und übergib ein Sichtbarkeitsflag (--public, --private oder --internal). Beispiel: gh repo create --source=. --public. Gib ein Remoterepository mit dem Flag --remote an. Um deine Commits zu pushen, übergib das Flag --push. Weitere Informationen zu möglichen Argumenten finden Sie im GitHub CLI-Handbuch.

Hinzufügen eines lokalen Repositorys zu GitHub mithilfe von Git

Führen Sie die folgenden Schritte aus, um ein lokales Repository mit Git hinzuzufügen:

  1. Erstellen Sie ein neues Repository auf GitHub.com. Initialisieren Sie das neue Repository nicht mit „README“, „license“ oder gitignore files, um Fehler zu vermeiden. Sie können diese Dateien nach der Übertragung des Projekts in GitHub hinzufügen.

    Screenshot der neuen Repositoryerstellung.

  2. Öffne Git Bash.

  3. Ändere das aktuelle Arbeitsverzeichnis in das lokale Projekt.

  4. Initialisiere das lokale Verzeichnis als Git-Repository.

    $ git init -b main
    
  5. Füge die Daten zum neuen lokalen Repository hinzu. Dieser Befehl führt sie auch für den ersten Commit durch.

    $ git add .
    # Adds the files in the local repository and stages them for commit. To unstage a file, use 'git reset HEAD YOUR-FILE'.
    
  6. Führen Sie einen Commit für die Dateien aus, die in Ihrem lokalen Repository ausgeführt werden.

    $ git commit -m "First commit"
    # Commits the tracked changes and prepares them to be pushed to a remote repository. To remove this commit and modify the file, use 'git reset --soft HEAD~1' and commit and add the file again.
    
  7. Klicken Sie oben in Ihrem Repository auf GitHub.com auf die Seite „Express-Setup“ und wählen Sie die Schaltfläche Kopieren, um die URL des Remoterepositorys zu kopieren.

    Screenshot: Kopieren der Remote-URL des Repositorys auf der Seite „Express-Setup“

  8. Fügen Sie in der Eingabeaufforderung die URL für das Remote-Repository hinzu. Ihr lokales Repository wird an diesen Speicherort übertragen.

    $ git remote add origin <REMOTE_URL> 
    # Sets the new remote
    $ git remote -v
    # Verifies the new remote URL
    
  9. Übertragen Sie die Änderungen per Push in Ihr lokales Repository auf GitHub.com.

    $ git push origin main
    # Pushes the changes in your local repository up to the remote repository you specified as the origin
    

Tools für die Quellcode-Migration

Für die Migration Deiner Projekte nach GitHub kannst Du externe Werkzeuge verwenden. Wir empfehlen, GitHub Importer zum Importieren von Projekten aus Subversion, Mercurial, Team Foundation-Versionskontrolle (TFVC) oder einem anderen Git-Repository zu verwenden. Auch diese externen Werkzeuge können für die Konvertierung Deines Projekts für Git verwendet werden.

Import aus Subversion

In einer typischen Subversion-Umgebung sind in einem Root-Repository mehrere Projekte gespeichert. In GitHub wird in der Regel jedes dieser Projekte einem eigenen Git-Repository eines Benutzerkontos oder einer Organisation zugeordnet. Wir empfehlen Dir in den folgenden Situationen den Import jedes Teils Deines Subversion-Repositorys in ein separates GitHub-Repository:

  • Check-outs und Commits durch die Mitarbeiter zu diesem Teil des Projekts erfolgen getrennt von den anderen Teilen
  • Für die einzelnen Teile sollen unterschiedliche Zugriffsberechtigungen verwendet werden

Für die Konvertierung von Subversion-Repositorys nach Git empfehlen wir folgende Werkzeuge:

Import aus Mercurial

Wir empfehlen hg-fast-export zum Konvertieren von Mercurial-Repositorys zu Git.

Importieren aus TFVC

Wir empfehlen git-tfs zum Übertragen von Änderungen zwischen TFVC und Git.

Weitere Informationen zum Wechsel von TFVC (einem zentralen Versionssteuerungssystem) zu Git finden Sie unter Migrieren der zentralen Versionssteuerung zu Git.