¿Por qué las etiquetas de git-filter-branch no se han reescrito?

Necesitaba dividir mi repositorio de git en dos partes. Usé los pasos que se muestran aquí:Detach (mover) subdirectorio en repositorio Git separado

El comando que usé fue:

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

que parecía funcionar bien y me dejó con ABC como raíz.

Sin embargo, ahora si trato de verificar una etiqueta que existía antes de dividir el repositorio:

 git checkout an-old-tagname

está recreando la antigua estructura de directorios, por lo que recrea ABC como un subdirectorio, junto con XYZ1 y XYZ2.

Sé que así es como se veía realmente el repositorio en ese punto en el tiempo, pero quiero que la etiqueta se refiera solo a los bits ABC, como si hubieran estado en la raíz en ese entonces. Pensé que eso era lo que estaba haciendo filter-branch cuando reescribió el historial, pero obviamente no lo asimilé correctamente.

¿Cómo puedo reescribir las etiquetas para poder retroceder en el tiempo mientras sigo teniendo ABC como la raíz del repositorio?

Respuestas a la pregunta(1)

Su respuesta a la pregunta