Skip to main content

Unterordner in ein neues Repository auslagern

Einzelne Ordner eines Git-Repositorys kannst du in neue Repositorys auslagern.

Platform navigation

Hinweis: Sie benötigen Git Version 2.22.0 oder höher, um diese Anweisungen zu befolgen, andernfalls funktioniert git filter-repo nicht.

Wenn Du bei der Erstellung eines Repository-Klons einen Ordner in ein separates Repository verschiebst, verlierst Du weder Deinen Git-Verlauf noch die bereits vorgenommenen Änderungen. Beachte jedoch, dass das neue Repository nicht die Branches und Tags des ursprünglichen Repositorys enthält.

  1. Öffne TerminalTerminalGit Bash.

  2. Ändere Dein aktuelles Arbeitsverzeichnis in das Verzeichnis, in dem das neue Repository erstellt werden soll.

  3. Klone das Repository, das den Unterordner enthält.

    git clone https://github.com/USERNAME/REPOSITORY-NAME
    
  4. Ändere Dein aktuelles Arbeitsverzeichnis in das Verzeichnis mit dem geklonten Repository.

    cd REPOSITORY-NAME
    
  5. Um den Unterordner aus den restlichen Dateien im Repository herauszufiltern, installiere git-filter-repo, und führe dann git filter-repo mit den folgenden Argumenten aus:

    • FOLDER-NAME: Der Ordner in deinem Projekt, in dem du ein separates Repository erstellen möchtest.

    Tipp: Windows-Benutzer sollten / zum Trennen von Ordnern verwenden.

    $ git filter-repo --path FOLDER-NAME/
    # Filter the specified branch in your directory and remove empty commits
    

    Das Repository sollte jetzt nur die Dateien aus dem bzw. den zuvor angegebenen Unterordner(n) enthalten.

    Wenn ein bestimmter Unterordner der neue Stammordner des neuen Repositorys sein soll, können Sie den folgenden Befehl verwenden:

    $ git filter-repo --subdirectory-filter FOLDER-NAME
    # Filter the specific branch by using a single sub-directory as the root for the new repository
    
  6. Erstelle ein neues Repository auf GitHub.

  7. Klicken Sie oben in Ihrem neuen Repository auf der Seite zur Schnelleinrichtung von GitHub auf , um die URL des Remoterepositorys zu kopieren.

    Screenshot des Headers „Schnelle Einrichtung“ in einem Repository. Neben der Remote-URL ist ein Symbol aus zwei sich überlappenden Quadraten orangefarben hervorgehoben.

    Tipp: Weitere Informationen zum Unterschied zwischen HTTPS- und SSH-URLs findest du unter Informationen zu Remote-Repositorys.

  8. Füge einen neuen Remotenamen mit der URL hinzu, die du für dein Repository kopiert hast. Beispielsweise sind origin oder upstream zwei häufige Optionen.

    git remote add origin https://github.com/USERNAME/REPOSITORY-NAME.git
    
  9. Vergewissere dich, dass die Remote-URL mit deinem neuen Repositorynamen hinzugefügt wurde.

    $ git remote -v
    # Verify new remote URL
    > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (fetch)
    > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (push)
    
  10. Übertrage Deine Änderungen am neuen Repository per Push auf GitHub.

    git push -u origin BRANCH-NAME