{"id":106023,"date":"2022-12-13T15:36:42","date_gmt":"2022-12-13T13:36:42","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39"},"modified":"2022-12-13T15:36:42","modified_gmt":"2022-12-13T13:36:42","slug":"vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39","title":{"rendered":"Lanzamiento del sistema de control de versiones Git 2.39","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Despu\u00e9s de dos meses de desarrollo, se ha publicado la versi\u00f3n 2.39 del sistema de gesti\u00f3n de versiones distribuido Git. Git es uno de los sistemas de control de versiones m\u00e1s populares, fiables y de alto rendimiento, que proporciona herramientas flexibles para el desarrollo no lineal basadas en la ramificaci\u00f3n y fusi\u00f3n de ramas. Para garantizar la integridad del historial y la resistencia a los cambios 'retroactivos', se utiliza el hash impl\u00edcito de todo el historial anterior en cada 'commit', as\u00ed como la posibilidad de validar con firmas digitales a los desarrolladores de etiquetas y 'commits' individuales.       <\/p>\n<p>En comparaci\u00f3n con la versi\u00f3n anterior, esta nueva versi\u00f3n incluye 483 cambios preparados por la participaci\u00f3n de 86 desarrolladores, de los cuales 31 contribuyeron por primera vez. Las principales novedades son:  <\/p>\n<ul>\n<li class=\"l\"> En el comando 'git shortlog', que est\u00e1 destinado a mostrar res\u00famenes con estad\u00edsticas del historial de cambios, se ha agregado la opci\u00f3n '--group' para agrupar 'commits' arbitrariamente por campos que no se limitan al autor o al 'committer'. Por ejemplo, para mostrar una lista de desarrolladores con informaci\u00f3n sobre el n\u00famero de cambios, incluidos los colaboradores mencionados en el campo 'Co-authored-by', se puede usar el comando: git shortlog -ns --group=author --group=trailer:co-authored-by\n<p>La salida de shortlog se puede agregar utilizando especificadores de formato, y la opci\u00f3n &#171;&#8212;group&#187; permite simplificar considerablemente la creaci\u00f3n de informes complejos y eliminar la necesidad de ejecutar comandos adicionales de ordenaci\u00f3n. Por ejemplo, para crear un informe sobre cu\u00e1ntos commits para una versi\u00f3n espec\u00edfica se aceptaron en cada mes, se puede especificar: git shortlog v2.38.0.. &#8212;date=&#8217;format:%Y-%m&#8217; &#8212;group=&#8217;&#8217; -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 Anteriormente, para realizar una operaci\u00f3n similar se habr\u00eda requerido el uso de las utilidades sort y uniq: git log v2.38.0.. &#8212;date=&#8217;format:%Y-%m&#8217; &#8212;format=&#8217;&#8217; | sort | uniq -c      <\/p>\n<li class=\"l\"> Se han ampliado las capacidades del mecanismo \u00abcruft packs\u00bb, dise\u00f1ado para empaquetar objetos inaccesibles que no tienen enlaces en el repositorio (no referenciados por ramas o etiquetas). Los objetos inaccesibles son eliminados por el recolector de basura, pero, antes de eliminarse, permanecen en el repositorio durante un tiempo determinado para evitar estados de carrera. El mecanismo \u00abcruft packs\u00bb permite almacenar todos los objetos inaccesibles en un \u00fanico archivo pack, y reflejar la fecha de modificaci\u00f3n de cada objeto en una tabla separada, que se almacena en un archivo con la extensi\u00f3n \u00ab.mtimes\u00bb, para que no se superponga con el tiempo general de modificaci\u00f3n.\n<p>El tiempo de existencia de los objetos inaccesibles en el repositorio antes de su eliminaci\u00f3n real se determina mediante la opci\u00f3n \u00ab--prune=\u00bb. Aunque la demora antes de la eliminaci\u00f3n es un m\u00e9todo bastante efectivo y pr\u00e1ctico para prevenir da\u00f1os en el repositorio debido a estados de carrera, no es 100% confiable. Para simplificar la recuperaci\u00f3n de un repositorio da\u00f1ado, en la nueva versi\u00f3n se ha proporcionado la opci\u00f3n de guardar objetos faltantes, para lo cual se ha a\u00f1adido la opci\u00f3n \u00ab--expire-to\u00bb al comando \u00abgit repack\u00bb, permitiendo especificar un archivo para crear una copia externa de todos los objetos eliminados. Por ejemplo, para guardar en el archivo backup.git los objetos inaccesibles que no han cambiado en los \u00faltimos 5 minutos, se puede utilizar el comando: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire-to=..\/backup.git      <\/p>\n<li class=\"l\"> Se ha incrementado significativamente (hasta un 70%) la velocidad de ejecuci\u00f3n de la operaci\u00f3n \u00abgit grep --cached\u00bb al buscar en \u00e1reas donde se aplica la clonaci\u00f3n parcial (sparse-checkout) y para las cuales se tienen \u00edndices parciales (sparse index). Anteriormente, al indicar la opci\u00f3n \u00ab--cached\u00bb, primero se realizaba la b\u00fasqueda en el \u00edndice normal y luego en los parciales, lo que provocaba retrasos significativos al buscar en grandes repositorios.\n<li class=\"l\"> Se ha acelerado la ejecuci\u00f3n en <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/es\/server\/dts-newyork\/\"   title=\"servidor\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2733\">servidor<\/a> Verificaci\u00f3n de la coherencia de nuevos objetos antes de su incorporaci\u00f3n al repositorio durante la operaci\u00f3n \u00abgit push\u00bb. Gracias a la contabilizaci\u00f3n en la verificaci\u00f3n solo de los enlaces declarados, en un repositorio de prueba con 7 millones de enlaces, de los cuales solo el 3% est\u00e1n sujetos a la operaci\u00f3n push, las optimizaciones introducidas han permitido reducir el tiempo de verificaci\u00f3n en un 4.5 veces.\n<li class=\"l\"> Para protegerse contra posibles desbordamientos de enteros en el c\u00f3digo, el comando &#171;git apply&#187; ahora limita el tama\u00f1o m\u00e1ximo de los parches procesados. Si el tama\u00f1o del parche supera 1 GB, se mostrar\u00e1 un error.\n<li class=\"l\"> Para protegerse contra posibles vulnerabilidades, se realizaron cambios para limpiar informaci\u00f3n innecesaria de los encabezados enviados al utilizar el m\u00f3dulo h2h3 con la opci\u00f3n GIT_TRACE_CURL=1 o GIT_CURL_VERBOSE=1 junto con HTTP\/2.\n<li class=\"l\"> Al realizar la operaci\u00f3n de checkout con una rama que es un enlace simb\u00f3lico a otra rama, el comando &#171;git symbolic-ref HEAD&#187; ahora muestra el nombre de la rama de destino, en lugar del nombre del enlace simb\u00f3lico.\n<li class=\"l\"> Se ha a\u00f1adido soporte para el argumento @{-1} en la opci\u00f3n &#171;&#8212;edit-description&#187; (&#171;git branch &#8212;edit-description @{-1}&#187;) para editar la descripci\u00f3n de la rama anterior.\n<li class=\"l\"> Se ha a\u00f1adido el comando &#171;git merge-tree &#8212;stdin&#187;, que permite pasar una lista de par\u00e1metros a trav\u00e9s de la entrada est\u00e1ndar.\n<li class=\"l\"> En los sistemas de archivos de red, el controlador fsmonitor, que rastrea cambios en el sistema de archivos, est\u00e1 desactivado por defecto.    <\/ul>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=58318\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 Git 2.39. Git \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445, \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0445 \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u0433\u0438\u0431\u043a\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043d\u0435\u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0431\u0430\u0437\u0438\u0440\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430 \u043e\u0442\u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0438 \u0438 \u0441\u043b\u0438\u044f\u043d\u0438\u0438 \u0432\u0435\u0442\u043e\u043a. \u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0438 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c &#171;\u0437\u0430\u0434\u043d\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c&#187; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043d\u0435\u044f\u0432\u043d\u043e\u0435 \u0445\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0439 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u0435, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-106023","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 Git 2.39.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 Git 2.39 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 Git 2.39.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-12-13T13:36:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-12-13T13:36:42+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lanzamiento del sistema de control de versiones Git 2.39 | ProHoster","description":"Tras dos meses de desarrollo, se ha publicado la versi\u00f3n del sistema distribuido de control de versiones Git 2.39.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 Git 2.39 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 Git 2.39.","og:url":"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2022-12-13T13:36:42+00:00","article:modified_time":"2022-12-13T13:36:42+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"106023","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-02-09 21:39:56","updated":"2026-02-09 21:39:56","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/106023","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=106023"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/106023\/revisions"}],"predecessor-version":[{"id":160013,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/106023\/revisions\/160013"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=106023"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=106023"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=106023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}