Grundlegende Frage: Wie trenne ich ein Git-Repo von dem Ursprung, von dem es geklont wurde?
git branch -a
zeigt an:
* master
remotes/origin/HEAD -> origin/master
und ich möchte alle Ursprungskenntnisse und die damit verbundenen Überarbeitungen entfernen.
Längere Frage: Ich möchte ein vorhandenes Subversion-Repo nehmen und daraus eine Reihe kleinerer Git-Repos erstellen. Jedes der neuen Git-Repos sollte die vollständige Historie nur des relevanten Zweigs haben. Ich kann das Repo nur auf den gewünschten Teilbaum beschneiden, indem ich:
git filter-branch --subdirectory-filter path/to/subtree HEAD
Das resultierende Repo enthält jedoch weiterhin alle Revisionen der jetzt verworfenen Teilbäume unter dem Zweig origin / master.
Mir ist klar, dass ich das -T-Flag verwenden könnte, um mit git-svn den relevanten Teilbaum des Subversion-Repos zu klonen. Ich bin mir nicht sicher, ob dies effizienter wäre, als später mehrere Instanziierungen von auszuführengit filter-branch --subdirectory-filter
Kopien des Git-Repos auszuführen, aber auf jeden Fall möchte ich trotzdem die Verknüpfung mit dem Ursprung trennen.
--prune-empty
, was ich vermisst habe.