El proyecto de código abierto Git publicó la versión 2.56.0 el 28 de septiembre de 2026, tras recibir contribuciones de más de 104 personas, entre ellas 39 colaboradores nuevos. La versión se centra en reducir los riesgos de errores de fusión y acelerar las operaciones de las que dependen los repositorios grandes y los servicios de alojamiento de código.
Preparar conflictos sin tocar otras modificaciones
Git 2.56 añade el modo git add --resolved para procesar únicamente los archivos que se encontraban en estado de conflicto. A diferencia de comandos como git add -u, el nuevo modo no intenta añadir todos los archivos rastreados modificados, lo que protege las modificaciones locales no relacionadas con la operación de fusión.
Antes de preparar los archivos, Git comprueba si quedan restos de marcadores de conflicto en los archivos de texto no fusionados. Si encuentra un marcador en cualquiera de los archivos especificados, deja el índice sin cambios en lugar de preparar parcialmente la operación. La operación puede restringirse mediante un pathspec, mientras que las eliminaciones y los conflictos binarios se procesan normalmente porque no contienen marcadores de texto.
Acelerar la búsqueda de bases de fusión
La versión mejora el algoritmo que busca los mejores ancestros comunes entre commits, una operación utilizada por las fusiones, las diferencias de tres puntos y las comparaciones de solicitudes de incorporación de cambios. Git ahora se detiene cuando uno de los dos lados exclusivos se agota en la cola de búsqueda, ya que en ese momento no puede aparecer una nueva base de fusión.
En el estado de un gran repositorio monolítico, el cambio redujo el tiempo de la operación de 0,68 segundos a 0,01 segundos. Las evaluaciones de productividad realizadas en dos grandes repositorios registraron una mejora de aproximadamente 70 veces en uno y un promedio cercano a 20 veces en el otro. Asimismo, la operación git merge-base --all v4.8 v4.9, en un caso relacionado con el núcleo de Linux, pasó de 167.441 pasos y 0,29 segundos a 3.887 pasos y 0,01 segundos.
Reempaquetados más pequeños para servicios de alojamiento
Git 2.56 eliminó dos obstáculos para utilizar el reempaquetado basado en rutas, una técnica que agrupa los objetos de archivos cercanos en el árbol del repositorio para mejorar su compresión. En una prueba realizada con una copia del repositorio Fluent UI, el tamaño del paquete de almacenamiento disminuyó de 558,5 megabytes con el reempaquetado tradicional a 164,4 megabytes mediante --path-walk, es decir, aproximadamente un 71 %.
Este método ahora es compatible con mapas de accesibilidad e islas de diferencias, lo que permite a los servicios de alojamiento evaluar el ahorro de almacenamiento manteniendo los mecanismos actuales de servicio y aislamiento. Sin embargo, no se activa de forma predeterminada ni representa una transformación automática para todos los repositorios.
Herramientas adicionales y mejoras prácticas
- El comando experimental git history drop añade la posibilidad de eliminar un commit y reproducir los commits posteriores a él, aunque se mantienen las limitaciones relacionadas con los conflictos, los commits raíz y las operaciones de fusión.
- El comando git refs unifica las operaciones de creación, actualización, eliminación y cambio de nombre de referencias, con compatibilidad para la protección compare-and-swap mediante valores antiguos.
- git branch --delete-merged permite eliminar en grandes cantidades las ramas fusionadas según las ramas de seguimiento, con una opción de vista previa y protección para ramas específicas.
- git bisect run --reset-when-found añade el restablecimiento automático del estado después de encontrar el commit causante del fallo.
- El comando git repack puede descartar manualmente los objetos binarios grandes recuperados en clones parciales, manteniéndolos disponibles para obtenerlos del servidor de confianza cuando sea necesario.
- git log --follow mejora el seguimiento de los cambios de nombre de rutas a través de un historial no lineal y también mejora la representación de gráficos con múltiples raíces.
¿Por qué es importante esta versión?
El valor práctico de Git 2.56 no se limita a los nuevos comandos; la versión aborda puntos de fricción directos en el trabajo de los desarrolladores y los administradores de repositorios. El modo git add --resolved reduce la probabilidad de incluir cambios no deseados, mientras que las mejoras en las bases de fusión y el reempaquetado se dirigen a los costes de tiempo y almacenamiento de los repositorios grandes. No obstante, algunas herramientas siguen siendo experimentales o manuales, especialmente los comandos de gestión del historial y limpieza de objetos en clones parciales, por lo que no deben tratarse como políticas automáticas ni como sustitutos incondicionales de los flujos de trabajo existentes.
La versión indica que el proyecto Git continúa mejorando el rendimiento a nivel de algoritmos y estructuras internas, y no solo añadiendo comandos para el usuario final. Los detalles de la versión recomiendan consultar las notas completas de Git 2.56 para revisar el resto de los cambios antes de adoptar las funciones experimentales en entornos de producción.