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.
-
Öffne TerminalTerminalGit Bash.
-
Ändere Dein aktuelles Arbeitsverzeichnis in das Verzeichnis, in dem das neue Repository erstellt werden soll.
-
Klone das Repository, das den Unterordner enthält.
git clone https://HOSTNAME/USERNAME/REPOSITORY-NAME
-
Ändere Dein aktuelles Arbeitsverzeichnis in das Verzeichnis mit dem geklonten Repository.
cd REPOSITORY-NAME
-
Um den Unterordner aus den restlichen Dateien im Repository herauszufiltern, installiere
git-filter-repo
, und führe danngit 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 > Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (89/89) > Ref 'refs/heads/BRANCH-NAME' was rewritten
Das Repository sollte jetzt nur die Dateien aus dem bzw. den zuvor angegebenen Unterordner(n) enthalten.
-
Erstelle ein neues Repository auf GitHub Enterprise Server.
-
Klicke oben in deinem neuen Repository auf der Seite zur Schnelleinrichtung deiner deine GitHub Enterprise Server-Instanz auf , um die URL des Remoterepositorys zu kopieren.
Tipp: Weitere Informationen zum Unterschied zwischen HTTPS- und SSH-URLs findest du unter Informationen zu Remote-Repositorys.
-
Füge einen neuen Remotenamen mit der URL hinzu, die du für dein Repository kopiert hast. Beispielsweise sind
origin
oderupstream
zwei häufige Optionen.git remote add origin https://HOSTNAME/USERNAME/REPOSITORY-NAME.git
-
Vergewissere dich, dass die Remote-URL mit deinem neuen Repositorynamen hinzugefügt wurde.
$ git remote -v # Verify new remote URL > origin https://HOSTNAME/USERNAME/NEW-REPOSITORY-NAME.git (fetch) > origin https://HOSTNAME/USERNAME/NEW-REPOSITORY-NAME.git (push)
-
Übertrage Deine Änderungen am neuen Repository per Push auf GitHub Enterprise Server.
git push -u origin BRANCH-NAME