Git 2.56: 748 commits, 39 colaboradores nuevos y un subcomando para borrar historia
La nueva versión del sistema de control de versiones amplía la caja de herramientas git refs, endurece el backend de merge ort y añade fetch.followRemoteHEAD.
Git 2.56.0 ya está disponible. La versión acumula 748 commits sin merge desde la 2.55, que salió en junio, firmados por 104 personas, 39 de ellas primerizas en el proyecto. El anuncio lo hizo Junio C Hamano en la lista de correo, con los tarballs ya publicados en los sitios habituales.
El mantenedor detalla en las notas un puñado de cambios que afectan al día a día de cualquiera que trabaje con ramas. El más visible es el mensaje que muestra git status cuando la rama local va por detrás de su rama de push o ha divergido: ahora propone directamente git pull <remote> <branch>. En la misma línea de evitar sustos, el backend de merge ort se ha endurecido contra árboles corruptos y aborta cuando toca en lugar de seguir adelante sobre datos mal formados.
Historia, referencias y configuración
El comando experimental git history estrena un subcomando drop que elimina un commit y reaplica sus descendientes sobre el padre. La caja de herramientas git refs gana create, delete, update y rename para manipular referencias sin salir de ahí. Y la inclusión condicional de ficheros de configuración, includeIf, ya sabe usar la ubicación del worktree como parte de la condición.
En el apartado de red, aparece fetch.followRemoteHEAD, que sirve de valor por defecto para el remote.<name>.followRemoteHEAD de cada remoto. También se ha tocado el manejo de la capability promisor-remote: la variable promisor.acceptFromServerURL permite que el otro extremo amplíe la lista de remotos promisorios. git log --follow maneja mejor la historia no lineal, esa en la que la ruta vigilada se renombra de formas distintas según la línea.
Hay además un detalle que aparece cada vez que alguien escribe mal un comando. git push origin/main o git branch origin main se reconocen como posibles erratas y el programa sugiere la corrección. Otra convención Unix que se respeta ahora: pedir la ayuda con -h o --help sale con código 0 en lugar de 129, tanto en git rev-parse --parseopt como en la mayoría de subcomandos.
Detalles menores que se notan
git log --graph indenta los commits raíz sin padre para que no parezcan relacionados con los que se dibujan justo encima. git blame reserva la columna de marcas (acento circunflejo, interrogación, asterisco) solo cuando hay marcas que mostrar. git repo info añade claves con rutas absolutas y relativas para gitdir y commondir, apoyadas en un ayudante de formato extraído de git rev-parse. Y se han añadido patrones userdiff para Swift.
Quien mantenga parques de máquinas con Git instalado desde el sistema operativo hará bien en mirar antes las notas de la versión: son cambios de comportamiento, no solo funciones nuevas, y algunos afectan a scripts que parsean salidas o que dependen del código de salida del programa. El punto de conflicto más probable está en ese 129 que pasa a ser 0 y en los mensajes nuevos de git status.

