¿Agregar tags retrospectivas en Git?

Así que a diferencia de algunas de las preguntas de migration de SVN aquí, estoy migrando a Git del tipo de control de fuente de "solo un montón de carpetas en mi máquina" (o la falta de eso, soy el ingeniero de control de calidad, el equipo de desarrollo me envía un file zip de vez en cuando, no te rías demasiado … :).

He asignado el último código, pero también tengo un montón de 'tags', es decir, hice una copy del proyecto en una carpeta raíz separada justo después de implementarla en producción.

Ahora el contenido de estas carpetas de tags no es necesariamente en un formatting consistente (las carpetas dentro de cada label pueden nombrarse con varios numbers de versión interna, y tienen copys de security de los files binarys, pero el formatting de esos cambios a lo largo del time, etc.)

Todo se ve un poco así (algo simplificado):

DuckProject DuckProject 1.2 R1 R2 R3 DuckProject 1.3 R1 R2 DuckProject 1.4 R1 R2 R3 <- copied elsewhere as '../GitHub/DuckProject' and uploaded to GitHub Tags DuckProject 1.2 tag <- want to upload and mark as a tag R3 R3_BINARY.TAR DuckProject 1.3 tag <- want to upload and mark as a tag R2 archived_binaries r2_debugbinary.zip r2_releasebinary.zip 

Así que, básicamente, quiero upload la label 1.2 y las carpetas de 1.3 tags a GitHub, pero realmente no me importa hacer un seguimiento de los cambios entre las versiones de las tags, ni siquiera con respecto a HEAD. Pero me importa rastrear los cambios desde 1.4 R3 en adelante, y eventualmente '1.4 R7' o lo que sea, necesitarán ser labeldos, idealmente de una manera que sea razonablemente consistente con las tags 'retrospectivas'.

Entonces (¡teniendo en count que estoy recogiendo todo esto a medida que avanzo!) ¿Cuál es la mejor manera de hacer esto con Git?

Podrías crearlos como confirmaciones sin padres y luego labelrlos usando la git tag . Esto será coherente con las tags en las nuevas versiones creadas también con la git tag .

Para crear una confirmación sin padre que tenga una label que lo señale, haga algo como:

  1. crear una twig temporal sin padre

     git checkout --orphan tmp 
  2. comprometer los files del file a la twig temporal (parece que tendrá que limpiar después de la twig anterior usando git rm -f antes de hacerlo)

  3. labelr el compromiso

     git tag v1.2 
  4. volver a la twig master

     git checkout master 
  5. eliminar la twig temporal

     git branch -D tmp