{"id":108813,"date":"2023-06-02T15:10:15","date_gmt":"2023-06-02T13:10:16","guid":{"rendered":"https:\/\/prohoster.info\/?p=108813"},"modified":"2023-06-02T17:30:17","modified_gmt":"2023-06-02T15:30:17","slug":"dostupna-sistema-upravleniya-ishodnymi-tekstami-git-2-41","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/dostupna-sistema-upravleniya-ishodnymi-tekstami-git-2-41","title":{"rendered":"Le syst\u00e8me de gestion des textes sources Git 2.41 est disponible.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Apr\u00e8s trois mois de d\u00e9veloppement, la version du syst\u00e8me de gestion d\u00e9centralis\u00e9e des codes sources Git 2.41 a \u00e9t\u00e9 publi\u00e9e. Git est l'un des syst\u00e8mes de gestion de versions les plus populaires, fiables et performants, offrant des moyens flexibles de d\u00e9veloppement non lin\u00e9aire bas\u00e9s sur les branches et les fusions. Pour garantir l'int\u00e9grit\u00e9 de l'historique et la r\u00e9silience aux changements \u00ab r\u00e9troactifs \u00bb, un hachage implicite de toute l'histoire pr\u00e9c\u00e9dente est utilis\u00e9 dans chaque commit. Il est \u00e9galement possible de certifier num\u00e9riquement les signatures des d\u00e9veloppeurs pour des tags et des commits sp\u00e9cifiques.     <\/p>\n<p>Compar\u00e9e \u00e0 la version pr\u00e9c\u00e9dente, cette nouvelle version int\u00e8gre 542 modifications, pr\u00e9par\u00e9es par 95 d\u00e9veloppeurs, dont 29 ont particip\u00e9 au d\u00e9veloppement pour la premi\u00e8re fois. Les principales nouveaut\u00e9s :  <\/p>\n<ul>\n<li class=\"l\"> Am\u00e9lioration du traitement des objets inaccessibles (unreachable) pour lesquels il n'existe pas de r\u00e9f\u00e9rences dans le d\u00e9p\u00f4t (aucune branche ou tag ne pointe vers eux). Les objets inaccessibles sont supprim\u00e9s par le collecteur de d\u00e9chets, mais demeurent un certain temps dans le d\u00e9p\u00f4t avant leur suppression pour \u00e9viter les conditions de concurrence. Pour suivre la p\u00e9riode de pr\u00e9sence des objets inaccessibles, il est n\u00e9cessaire de les lier \u00e0 des timestamps indiquant les modifications de ces objets, ce qui emp\u00eache leur stockage dans un seul fichier pack o\u00f9 tous les objets partagent le m\u00eame timestamp. Auparavant, chaque objet unreachable \u00e9tait enregistr\u00e9 dans un fichier s\u00e9par\u00e9, ce qui posait des probl\u00e8mes en cas de nombreux objets inaccessibles r\u00e9cents, pas encore soumis \u00e0 suppression. Dans cette nouvelle version, le m\u00e9canisme de \u00ab cruft packs \u00bb est utilis\u00e9 par d\u00e9faut pour empaqueter les objets inaccessibles, permettant de stocker tous les objets inaccessibles dans un seul fichier pack, tandis que les donn\u00e9es de modification de chaque objet sont refl\u00e9t\u00e9es dans une table s\u00e9par\u00e9e, conserv\u00e9e dans un fichier avec l'extension \u00ab .mtimes \u00bb et associ\u00e9e par un fichier d'index avec l'extension \u00ab .idx \u00bb.    <center><img decoding=\"async\" alt=\"Le syst\u00e8me de gestion des textes sources Git 2.41 est disponible.\" src=\"\/wp-content\/uploads\/2023\/06\/1158b26b1dfd1c16c93017669224d7a4.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>\n<li class=\"l\"> La gestion de l'index invers\u00e9 (revindex) pour les fichiers pack est activ\u00e9e par d\u00e9faut sur le disque. Lors de tests sur le d\u00e9p\u00f4t torvalds\/linux, l'utilisation de l'index invers\u00e9 a permis d'acc\u00e9l\u00e9rer les op\u00e9rations gourmandes en ressources \u00ab git push \u00bb de 1,49 fois, et des op\u00e9rations simples, comme le calcul de la taille d'un seul objet avec \u00ab git cat-file --batch='%(objectsize:disk)' \u00bb, de 77 fois. Les fichiers (\u00ab .rev \u00bb) contenant l'index invers\u00e9 seront enregistr\u00e9s \u00e0 l'int\u00e9rieur du d\u00e9p\u00f4t dans le r\u00e9pertoire \u00ab .git\/objects\/pack \u00bb.\n<p>Rappelons que Git stocke toutes les donn\u00e9es sous forme d'objets, qui sont plac\u00e9s dans des fichiers s\u00e9par\u00e9s. Pour am\u00e9liorer l'efficacit\u00e9 du travail avec le d\u00e9p\u00f4t, les objets sont \u00e9galement regroup\u00e9s dans des fichiers pack, o\u00f9 les informations sont pr\u00e9sent\u00e9es sous la forme d'un flux d'objets se suivant (un format similaire est utilis\u00e9 lors de la transmission d'objets avec les commandes git fetch et git push). Pour chaque fichier pack, un fichier d'index (.idx) est cr\u00e9\u00e9, permettant de d\u00e9terminer tr\u00e8s rapidement, par l'identifiant de l'objet, le d\u00e9calage dans le fichier pack o\u00f9 cet objet est stock\u00e9.     <\/p>\n<p>Le nouvel index invers\u00e9 inclus vise \u00e0 optimiser le processus d'identification des objets par rapport aux informations de localisation dans un fichier pack. Auparavant, cette transformation \u00e9tait effectu\u00e9e \u00e0 la vol\u00e9e lors de l'analyse du fichier pack et n'\u00e9tait stock\u00e9e qu'en m\u00e9moire, ce qui emp\u00eachait la r\u00e9utilisation de tels index et obligeait \u00e0 g\u00e9n\u00e9rer un index \u00e0 chaque fois. L'op\u00e9ration de construction de l'index consiste \u00e0 cr\u00e9er un tableau de paires \u00ab objet-position \u00bb et \u00e0 le trier par position, ce qui peut prendre beaucoup de temps pour de grands fichiers pack.     <\/p>\n<p>Par exemple, l'op\u00e9ration d'affichage du contenu des objets, utilisant un index direct, s'ex\u00e9cutait 62 fois plus vite que l'op\u00e9ration affichant la taille des objets, pour laquelle les donn\u00e9es de liaison de position \u00e0 objet n'\u00e9taient pas index\u00e9es. Apr\u00e8s utilisation de l'index invers\u00e9, les op\u00e9rations mentionn\u00e9es ont pris un temps \u00e0 peu pr\u00e8s \u00e9gal. Les index invers\u00e9s permettent \u00e9galement d'acc\u00e9l\u00e9rer les op\u00e9rations d'envoi d'objets lors des commandes fetch et push gr\u00e2ce \u00e0 la transmission directe des donn\u00e9es d\u00e9j\u00e0 pr\u00e9par\u00e9es depuis le disque.    <center><img decoding=\"async\" alt=\"Le syst\u00e8me de gestion des textes sources Git 2.41 est disponible.\" src=\"\/wp-content\/uploads\/2023\/06\/ed6cb7102da37d1262fd3079ac983158.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>      <\/p>\n<li class=\"l\"> Dans le protocole \u00ab credential helper \u00bb, utilis\u00e9 pour transmettre les informations d'identification lors de l'acc\u00e8s \u00e0 des d\u00e9p\u00f4ts \u00e0 acc\u00e8s limit\u00e9, un support a \u00e9t\u00e9 ajout\u00e9 pour la transmission des en-t\u00eates WWW-Authenticate entre le gestionnaire d'identifiants et le service dans lequel l'authentification est effectu\u00e9e. Le support de l'en-t\u00eate WWW-Authenticate permet de transmettre des param\u00e8tres de port\u00e9e OAuth pour un partage d'acc\u00e8s plus granulaire aux d\u00e9p\u00f4ts et pour d\u00e9limiter les domaines accessibles aux requ\u00eates.\n<li class=\"l\"> La commande for-each-ref a ajout\u00e9 l'option de formatage \u00ab %(ahead-behind:) \u00bb, permettant d'obtenir instantan\u00e9ment des informations sur le nombre de commits pr\u00e9sents ou absents dans une branche donn\u00e9e par rapport \u00e0 une autre branche (jusqu'o\u00f9 une branche est \u00e0 la tra\u00eene ou en avance sur l'autre en termes de commits). Auparavant, pour obtenir ces informations, il fallait ex\u00e9cuter deux commandes distinctes : \u00ab git rev-list \u2014count main..my-feature \u00bb pour obtenir le nombre de commits uniques \u00e0 la branche et \u00ab git rev-list \u2014count my-feature..main \u00bb pour obtenir le nombre de commits absents. D\u00e9sormais, ces calculs peuvent \u00eatre r\u00e9duits \u00e0 une seule commande, ce qui simplifie l'\u00e9criture des gestionnaires et r\u00e9duit le temps d'ex\u00e9cution. Par exemple, pour afficher les branches qui n'ont pas \u00e9t\u00e9 fusionn\u00e9es et \u00e9valuer leur retard ou leur avance par rapport \u00e0 leur branche principale, vous pouvez utiliser une commande simple :           $ git for-each-ref \u2014no-merged=origin\/HEAD \n       \u2014format='%(refname:short) %(ahead-behind:origin\/HEAD)' \n       refs\/heads\/tb\/ | column -t       tb\/cruft-extra-tips 2 96     tb\/for-each-ref\u2014exclude 16 96     tb\/roaring-bitmaps 47 3      au lieu du script pr\u00e9c\u00e9demment utilis\u00e9, qui s'ex\u00e9cute 17 fois plus lentement :         $ git for-each-ref \u2014format='%(refname:short)' \u2014no-merged=origin\/HEAD \n       refs\/heads\/tb |       while read ref       do         ahead=$(git rev-list \u2014count origin\/HEAD..$ref)         behind=$(git rev-list \u2014count $ref..origin\/HEAD)         printf '%s %d %d\n' '$ref' '$ahead' '$behind'       done | column -t       tb\/cruft-extra-tips 2 96     tb\/for-each-ref\u2014exclude 16 96     tb\/roaring-bitmaps 47 3\n<li class=\"l\"> La commande \u00ab git fetch \u00bb a ajout\u00e9 l'option \u00ab \u2014porcelain \u00bb, qui, lorsqu'elle est sp\u00e9cifi\u00e9e, g\u00e9n\u00e8re une sortie au format \u00ab     \u00bb, moins lisible, mais plus facile \u00e0 analyser dans les scripts.\n<li class=\"l\"> Une nouvelle configuration \u00ab fetch.hideRefs \u00bb a \u00e9t\u00e9 ajout\u00e9e, permettant d'acc\u00e9l\u00e9rer les op\u00e9rations de \u00ab git fetch \u00bb en masquant une partie des r\u00e9f\u00e9rences dans le r\u00e9f\u00e9rentiel local lors de la v\u00e9rification par le serveur de l'ensemble complet des objets, ce qui permet de gagner du temps en limitant la v\u00e9rification uniquement \u00e0 $remote. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/fr\/server\/\"   title=\"serveurs\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1714\">serveurs<\/a>, \u00e0 partir desquelles les donn\u00e9es sont extraites directement. Par exemple, lors d'un test sur un syst\u00e8me avec des d\u00e9p\u00f4ts contenant un grand nombre de liens externes suivis, exclure toutes les r\u00e9f\u00e9rences sauf celles destin\u00e9es au <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/fr\/server\/dts-shicago\/\"   title=\"serveur\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2936\">serveur<\/a> Cela a permis de r\u00e9duire l'ex\u00e9cution de l'op\u00e9ration \u00ab git fetch \u00bb de 20 minutes \u00e0 30 secondes.       $ git -c fetch.hideRefs=refs -c fetch.hideRefs=!refs\/remotes\/$remote \n     fetch $remote\n<li class=\"l\"> Dans la commande \u00ab git fsck \u00bb, il est d\u00e9sormais possible de v\u00e9rifier les corruptions, la conformit\u00e9 des sommes de contr\u00f4le et la validit\u00e9 des valeurs dans les cartes de disponibilit\u00e9 et les index inverses.\n<li class=\"l\"> L'\u00e9quipe a impl\u00e9ment\u00e9 l'affichage des erreurs lors de la tentative de copie d'un r\u00e9f\u00e9rentiel contenant des liens symboliques dans $GIT_DIR avec la commande &#171;git clone &#8212;local&#187;.        <\/ul>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=59234\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u0440\u0451\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.41. 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":108814,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-108813","post","type-post","status-publish","format-standard","has-post-thumbnail","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 \u0442\u0440\u0451\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.41.\" \/>\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\/fr\/blog\/news\/dostupna-sistema-upravleniya-ishodnymi-tekstami-git-2-41\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \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.41 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0442\u0440\u0451\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.41.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/dostupna-sistema-upravleniya-ishodnymi-tekstami-git-2-41\" \/>\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=\"2023-06-02T13:10:16+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-06-02T15:30:17+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\udd47Le syst\u00e8me de gestion de code source Git 2.41 est disponible | ProHoster","description":"Apr\u00e8s trois mois de d\u00e9veloppement, la version du syst\u00e8me de gestion de code source Git 2.41 a \u00e9t\u00e9 publi\u00e9e.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/dostupna-sistema-upravleniya-ishodnymi-tekstami-git-2-41","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \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.41 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0442\u0440\u0451\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.41.","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/dostupna-sistema-upravleniya-ishodnymi-tekstami-git-2-41","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":"2023-06-02T13:10:16+00:00","article:modified_time":"2023-06-02T15:30:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"108813","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 16:51:35","updated":"2026-02-09 21:42:06","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/108813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=108813"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/108813\/revisions"}],"predecessor-version":[{"id":160216,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/108813\/revisions\/160216"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/108814"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=108813"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=108813"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=108813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}