ich ein git Projekt, das ein großes Stammverzeichnis hat:git subtree split - die Tags werden nicht übertragen
C:\MyProject\MyProject
C:\MyProject\.git
Und dann die Dateien und Unterverzeichnisse sind alle innerhalb . Ich mag, dass redundantes Root-Verzeichnis entfernen, so habe ich diesen Befehl ein:
git subtree split -P MyProject -b MyBranch
git checkout MyBranch
git branch -D master
git branch -m MyBranch master
Es gibt ein Problem mit dieser Lösung ist jedoch - die Tags noch auf den nun gelöscht angebracht sind, Original-Master-Zweig:
der graue Zweig ist der Original-Master-Zweig, der rote Zweig die neuen ohne redundantes Verzeichnis, aber die Tags sind noch auf den alten Zweig des checkins angebracht.
Tags zeigen auf bestimmte Commits. Ihre Teilbaumoperationen erstellen eine neue Gruppe von Commits (gewährt, ein Teil des Inhalts ist immer noch derselbe, aber es sind neue Commits). Wenn Sie die Tags verschieben müssen, müssen Sie dies manuell tun. – twalberg
In meinem Fall ist es nicht "einige", es gibt eine 1-1 Korrespondenz für alle Commits, ich muss nur das redundante Root-Verzeichnis entfernen. Aber ja, leider scheint es so zu sein. Ich habe nur überprüft und die Tags sind insgesamt 10, also werde ich sie von Hand "migrieren". – sashoalm