¿Cómo evito que los usuarios presionen todas las tags (git push – tags)?

Creamos muchas tags antes de descubrir que las tags git se pueden nombrar con barras para organizarlas en una estructura de carpetas. Ahora es muy difícil deshacerse de las tags con nombres erróneos, porque aunque elimino las tags con nombres erróneos en el server, de repente alguien que no ha eliminado sus tags localmente empuja todas las tags y luego las tags viejas y nuevas vuelven a estar en el server.

Estamos usando SourceTree como cliente de git (y sí, he estado presente y me he asegurado de que todos hayan desmarcado la checkbox "presionar todas las tags", pero llegan nuevas personas y se reemplazan las computadoras) y el repository Git de Visual Studio Team Services.

Quiero que todos puedan crear y enviar tags de forma individual, solo quiero evitar esos grandes cambios de tags.

He leído este post git pre-push hook, no lo ejecute si es –tags pero la solución no parece funcionar en Windows.

No importa git hooks u otros scripts, todos ellos deben ejecutarse en las máquinas locales de forma individual. Así que sugeriré sincronizar las tags con el control remoto antes de que los desarrolladores creen sus propias tags en las máquinas locales .

En realidad, solo tiene que ejecutarse una vez para cada máquina local, por lo que los desarrolladores solo tienen que ejecutar commands inferiores (eliminar tags locales y get todas las tags de forma remota) en su máquina antes de trabajar:

 git tag -l | xargs git tag -d git fetch --tags 

Entonces los desarrolladores pueden trabajar en su propio repository local e incluso git push con la opción push all tags seleccionada en SourceTree no afectará a las tags antiguas que eliminó.

Además, cuando los ganchos del lado del server estarán disponibles en el futuro para VSTS , también puede usar los ganchos post-push para verificar si las tags eliminadas vuelven a ser remotas. En caso afirmativo, deténgase para presionar las determinadas tags que especificó en el enganche post-push.