lanzamiento del sistema distribuido de control de versiones . Git es uno de los sistemas de control de versiones más populares, confiables y de alto rendimiento, que ofrece herramientas flexibles para el desarrollo no lineal, basadas en bifurcaciones y fusiones de ramas. Para garantizar la integridad del historial y la resistencia a los cambios retroactivos, se utiliza un hashing implícito de toda la historia anterior en cada commit, y también es posible certificar digitalmente firmas de desarrolladores para etiquetas y commits individuales.
En comparación con la versión anterior, la nueva versión incluye 537 cambios, preparados con la participación de 71 desarrolladores, de los cuales 19 participaron por primera vez en el desarrollo. Principales :
- Cancelada la inclusión predeterminada implementada en la versión anterior del protocolo de comunicación Git, que se utiliza al conectarse de forma remota al servidor Git. El protocolo aún no se considera listo para uso predeterminado debido a algunos problemas que requieren un tratamiento especial.
- Se ha añadido un conjunto de opciones para configurar la conexión SSL al acceder a través de un proxy.
- Se ha ampliado la información proporcionada al usar los filtros transformadores «clean» y «smudge». Por ejemplo, ahora se muestra el objeto , en el que aparece el blob transformado.
- Para evitar confusiones, en el comando «git describe» ahora se aplica siempre el modo de salida extendido («–long») si se detecta una etiqueta sustituida asociada al commit (anteriormente, una etiqueta firmada o anotada que describía el commit se mostraba incluso si había sido renombrada o movida en la jerarquía «refs/tags/», y el comando «git show tag^0» no funcionaba como se esperaba — «refs/tags/tag» no se encontraba o incluso se mostraba otra etiqueta diferente).
- Al realizar un «git pull», ahora se muestra una advertencia si no se ha especificado explícitamente la variable de configuración pull.rebase y no se han aplicado las opciones «–[no-]rebase» o «–ff-only». Para suprimir la advertencia de quienes no planean realizar la operación rebase, se puede establecer el valor «false» en la variable.
- Se ha revisado las opciones de «git pull», que son comunes con «git fetch». Se han documentado opciones similares que no se mencionaron anteriormente y se ha asegurado la transferencia de las opciones omitidas a «git fetch».
- Se ha añadido a la comando «git rebase» la opción «–no-gpg-sign» para anular la configuración «commit.gpgSign».
- En «git format-patch» se ha añadido la posibilidad de mostrar los encabezados «From:» y «Subject:» sin modificaciones, sin transformar los caracteres que no están en la codificación ASCII.
- En «git log» se ha agregado la opción «–show-pulls», que permite ver no solo los commits en los que se realizaron cambios, sino también el commit para fusionar esos cambios de una rama separada.
- Se ha unificado el manejo de la entrada interactiva en todos los componentes y se ha añadido una llamada a fflush() después de mostrar el aviso de entrada, pero antes de la operación de lectura.
- En «git rebase» está permitido aplicar nuevamente todos los commits locales sin necesidad de realizar primero la operación «checkout», incluso si algunos de ellos se habían enviado previamente a upstream.
- El valor de la variable de configuración ‘pack.useSparse’ se ha cambiado a ‘true’ para habilitar por defecto las optimizaciones que anteriormente se presentaban como experimentales.
- Se ha añadido la opción «—autostash» en «git merge».
- Se ha mejorado la interfaz de «sparse-checkout».
- Se han añadido varias nuevas acciones en «git update-ref —stdin»,
que permiten controlar directamente las transacciones de actualización de referencias, por ejemplo, para implementar una actualización de referencias atómica en dos etapas en varios repositorios. - Se han añadido plantillas userdiff para documentos Markdown.
- Se ha eliminado la limitación que excluía todos los caminos en las plantillas de sparse-checkout, lo que provocaba un árbol de trabajo vacío.
- La operación «git restore —staged —worktree» ahora por defecto utiliza el contenido de la rama «HEAD», en lugar de mostrar un error.
- Se ha continuado el trabajo para pasar al algoritmo de hash SHA-2 en lugar de SHA-1.
- Se ha reescrito el código para la interacción con GnuPG.
Fuente: opennet.ru
