Почему git-filter-branch не перезаписывает теги?

Мне нужно было разделить репозиторий git на две части. Я использовал шаги, показанные здесь: Отсоединить (переместить) подкаталог в отдельный репозиторий Git

Я использовал следующую команду:

 git filter-branch --subdirectory-filter ABC HEAD -- --all

, которая, похоже, работала нормально и оставила меня с ABC в качестве корня.

Однако теперь, если я попытаюсь проверить тег, который существовал до того, как я разделил репо:

 git checkout an-old-tagname

он воссоздает старую структуру каталогов - поэтому воссоздайте ABC как подкаталог вместе с XYZ1 и XYZ2.

Я знаю, что именно так репо выглядело в тот момент времени - но я хочу, чтобы тег относился только к битам ABC, как если бы они тогда находились в корне. Я думал, что это то, что делает filter-branch, когда переписывает историю, но, очевидно, я не разбираюсь в этом должным образом.

Как я могу переписать теги, чтобы вернуться в прошлое, оставив ABC корнем репо?

9
задан Community 23 May 2017 в 11:59
поделиться