Ich versuche, ein großes Repo in mehrere kleinere aufzuteilen. Ziel ist es, einen Ordner aufzuteilen und dabei die Tags beizubehalten.
Ich habe versucht:
git filter-branch --prune-empty --subdirectory-filter my-folder develop
Diese richtig platzieren my-folder
im Stammverzeichnis des neuen Projekts und behält die Tags bei. Das Auschecken eines Tags führte jedoch dazu, dass die gesamte alte Verzeichnisstruktur im neuen Repo angezeigt wurde.
Also habe ich versucht:
git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter my-folder -- --branches=develop --tags
Dies führt dazu, dass der Entwicklungszweig mit der alten Verzeichnisstruktur vorhanden ist, ABER Wenn ich ein Tag auschecke, sehe ich das Unterverzeichnis korrekt nach dem Stamm gefiltert! Die Tags sind also korrekt, aber nicht der Entwicklungszweig. Im Grunde hat es das entgegengesetzte Problem zur ersten Methode.
Ich bin ratlos, warum die zweite Methode nicht funktioniert hat. Über Hinweise würde ich mich sehr freuen!
BEARBEITEN:
Versuch das jetzt:
git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter my-folder -- --all
War zögerlich, da ich erwarte, dass dies etwas länger dauern wird. Das hat zwar länger gedauert, aber meistens funktioniert. Was hat nicht funktioniert? Nun, die älteren Tags, in denen der Ordner noch nicht erstellt wurde, wurden im Repo belassen und enthielten beim Auschecken die vollständige (sehr) alte Verzeichnisstruktur. Ich musste alle diese Tags grep und löschen. Trotzdem ist das Repo nicht so klein, wie ich erwartet hatte …