# Einen Unterordner in ein neues Repository auslagern

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

> \[!NOTE]
> Du benötigst die 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 <span class="platform-mac">Terminal</span><span class="platform-linux">Terminal</span><span class="platform-windows">Git Bash</span>.

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.

   ```shell
   git clone https://github.com/USERNAME/REPOSITORY-NAME
   ```

4. Ändere Dein aktuelles Arbeitsverzeichnis in das Verzeichnis mit dem geklonten Repository.

   ```shell
   cd REPOSITORY-NAME
   ```

5. Um den Unterordner aus den restlichen Dateien im Repository herauszufiltern, installiere [`git-filter-repo`](https://github.com/newren/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.

   <div class="ghd-tool windows">

   > \[!TIP]
   > Windows Benutzer sollten `/` verwenden, um Ordner zu trennen.

   </div>

   ```shell
   $ 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:

   ```shell
   $ 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](/de/repositories/creating-and-managing-repositories/creating-a-new-repository) auf GitHub.

7. Klicken Sie oben in Ihrem neuen Repository auf der Seite zur Schnelleinrichtung von GitHub auf <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>, um die URL des Remote-Repositorys zu kopieren.

   ![Screenshot des Headers „Schnelle Einrichtung“ in einem Repository. Neben der Remote-URL ist ein Symbol mit zwei überlappenden Quadraten orange umrandet.](/assets/images/help/repository/copy-remote-repository-url-quick-setup.png)

   > \[!TIP]
   > Weitere Informationen zum Unterschied zwischen HTTPS- und SSH-URLs findest du unter [Informationen zu Remote-Repositorys](/de/get-started/git-basics/about-remote-repositories).

8. Füge einen neuen Remotenamen mit der URL hinzu, die du für dein Repository kopiert hast.
   `origin` und `upstream` werden beispielsweise häufig verwendet.

   ```shell
   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.

   ```shell
   $ 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. Übertragen Sie Ihre Änderungen in das neue Repository auf GitHub.

    ```shell
    git push -u origin BRANCH-NAME
    ```