¿Es una buena práctica comprometerse con HEAD?

He estado trabajando en una aplicación empresarial durante algunos meses y noté que el último código "estable" se había comprometido desde una sucursal a HEAD en lugar de labelrse como una versión.

Siempre he pensado que el código debe estar comprometido con una sucursal durante el process de desarrollo, y luego sellado / labeldo en la versión cuando se alcanza algún tipo de hito (final del sprint en un proyecto scrum, código listo para producción, etc.).

¿Cuál es la práctica estándar utilizada en la industria de desarrollo de software?