Lanzamiento del sistema de control de código fuente distribuido Git 2.23

Presentado por lanzamiento del sistema de control de código fuente distribuido Git 2.23.0. Git es uno de los sistemas de control de versiones más populares, confiables y de alto rendimiento, y proporciona herramientas de desarrollo no lineales flexibles basadas en ramificaciones y fusiones. Para garantizar la integridad del historial y la resistencia a cambios retroactivos, se utiliza el hash implícito de todo el historial anterior en cada confirmación, y también es posible certificar etiquetas individuales y confirmaciones con firmas digitales de los desarrolladores.

En comparación con la versión anterior, la nueva versión incluyó 505 cambios, elaborados con la participación de 77 desarrolladores, de los cuales 26 participaron en el desarrollo por primera vez. Básico innovaciones:

  • Se introducen los comandos experimentales "git switch" y "git recovery" para separar capacidades de "git checkout" poco acopladas, como la manipulación de ramas (cambiar y crear) y la restauración de archivos en el directorio de trabajo ("git checkout $commit - $filename") o inmediatamente en el área de preparación (“—staging”, no tiene análogo en “git checkout”). Vale la pena señalar que, a diferencia de "git checkout", "git recovery" elimina los archivos sin seguimiento de los directorios que se están restaurando ("--no-overlay" de forma predeterminada).
  • Se agregó la opción "git merge –quit", que, similar a "-abort", detiene el proceso de fusión de ramas, pero deja intacto el directorio de trabajo. Esta opción puede ser útil si es preferible emitir algunos de los cambios realizados durante una combinación manual como una confirmación separada.
  • Los comandos "git clone", "git fetch" y "git push" ahora tienen en cuenta la presencia de confirmaciones en repositorios vinculados (suplentes);
  • Adicional las opciones “git culpe —ignore-rev” y “—ignore-revs-file” le permiten omitir confirmaciones que realizan cambios menores (por ejemplo, correcciones de formato);
  • Se agregó la opción “git cherry-pick —skip” para omitir una confirmación conflictiva (un análogo memorizado de la secuencia “git reset && git cherry-pick —continue”);
  • Se agregó la configuración status.aheadBehind, que corrige permanentemente la opción "git status -[no-]ahead-behind";
  • A partir de esta versión, "git log" de forma predeterminada tiene en cuenta los cambios realizados por mailmap, similar a como ya lo hace git shortlog;
  • La operación de actualización del caché experimental del gráfico de confirmación (core.commitGraph) introducida en 2.18 se ha acelerado significativamente. También hizo que git for-each-ref fuera más rápido al usar múltiples plantillas y redujo la cantidad de llamadas a auto-gc en “git fetch —multiple”;
  • "git branch --list" ahora siempre muestra HEAD separado al principio de la lista, independientemente de la configuración regional.

Fuente: opennet.ru

Añadir un comentario