{"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\/de\/blog\/news\/dostupna-sistema-upravleniya-ishodnymi-tekstami-git-2-41","title":{"rendered":"Das System zur Verwaltung von Quelltexten Git 2.41 ist verf\u00fcgbar","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Nach drei Monaten Entwicklung wurde die Version 2.41 des verteilten Systems zur Verwaltung von Quelltexten Git ver\u00f6ffentlicht. Git geh\u00f6rt zu den bekanntesten, zuverl\u00e4ssigsten und leistungsst\u00e4rksten Versionsverwaltungssystemen und bietet flexible Werkzeuge f\u00fcr nichtlineare Entwicklungen, die auf Verzweigungen und Zusammenf\u00fchrungen basieren. Um die Integrit\u00e4t der Historie und die Widerstandsf\u00e4higkeit gegen\u00fcber R\u00fcckwirkenden \u00c4nderungen zu gew\u00e4hrleisten, wird das gesamte fr\u00fchere Historie in jedem Commit implizit gehasht; au\u00dferdem ist die Verifizierung durch digitale Signaturen f\u00fcr bestimmte Tags und Commits m\u00f6glich.     <\/p>\n<p>Im Vergleich zur vorherigen Version wurden in die neue Version 542 \u00c4nderungen \u00fcbernommen, die von 95 Entwicklern vorbereitet wurden, von denen 29 erstmals an der Entwicklung teilnahmen. Die Hauptneuerungen sind:  <\/p>\n<ul>\n<li class=\"l\"> Die Verarbeitung unerreichbarer Objekte (unreachable) wurde verbessert, auf die im Repository keine Verweise (wie Branches oder Tags) existieren. Unerreichbare Objekte werden vom Garbage Collector entfernt, bleiben aber eine gewisse Zeit im Repository, um Zustandsrennen zu vermeiden. Um die Dauer des Aufenthalts unerreichbarer Objekte zu verfolgen, m\u00fcssen diese mit Zeitstempeln versehen werden, was es verhindert, sie in einer Pack-Datei zu speichern, in der alle Objekte einen gemeinsamen Zeitstempel haben. Fr\u00fcher wurde jedes unerreichbare Objekt in einer separaten Datei gespeichert, was zu Problemen f\u00fchren konnte, wenn viele neue unerreichbare Objekte vorhanden waren, die noch nicht zur L\u00f6schung f\u00e4llig waren. In der neuen Version wird standardm\u00e4\u00dfig der Mechanismus der 'cruft packs' verwendet, um unerreichbare Objekte in einer einzigen Pack-Datei zu speichern, wobei die \u00c4nderungsdaten jedes Objekts in einer separaten Tabelle erfasst werden, die in einer Datei mit der Erweiterung '.mtimes' gespeichert und \u00fcber eine Index-Datei mit der Erweiterung '.idx' verkn\u00fcpft wird.    <center><img decoding=\"async\" alt=\"Das System zur Verwaltung von Quelltexten Git 2.41 ist verf\u00fcgbar\" src=\"\/wp-content\/uploads\/2023\/06\/1158b26b1dfd1c16c93017669224d7a4.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>\n<li class=\"l\"> Die F\u00fchrung eines Umkehrindex (revindex) f\u00fcr Pack-Dateien ist standardm\u00e4\u00dfig aktiviert. Bei Tests im Repository torvalds\/linux konnte durch die Verwendung des Umkehrindex die rechenintensive Operation 'git push' um den Faktor 1,49 beschleunigt werden, w\u00e4hrend einfache Operationen wie die Berechnung der Gr\u00f6\u00dfe eines Objekts mit 'git cat-file --batch='%(objectsize:disk)' um das 77-fache beschleunigt wurden. Die Dateien ('.rev') mit dem Umkehrindex werden im Repository im Verzeichnis '.git\/objects\/pack' gespeichert.\n<p>Erinnern wir uns daran, dass Git alle Daten in Form von Objekten speichert, die in separaten Dateien abgelegt werden. Um die Effizienz der Arbeit mit dem Repository zu erh\u00f6hen, werden die Objekte zus\u00e4tzlich in Pack-Dateien abgelegt, in denen die Informationen in Form eines Stroms von aufeinanderfolgenden Objekten dargestellt werden (ein \u00e4hnliches Format wird beim \u00dcbertragen von Objekten mit den Befehlen git fetch und git push verwendet). F\u00fcr jede Pack-Datei wird eine Indexdatei (.idx) erstellt, die es erm\u00f6glicht, anhand der Objekt-ID sehr schnell die Offsets in der Pack-Datei zu bestimmen, wo dieses Objekt gespeichert ist.     <\/p>\n<p>Der im neuen Release enthaltene umgekehrte Index zielt darauf ab, den Prozess der Identifizierung von Objekten anhand der Platzierungsinformationen im Pack-File zu optimieren. Zuvor wurde diese Umwandlung zur Laufzeit w\u00e4hrend der Analyse des Pack-Files durchgef\u00fchrt und nur im Speicher gespeichert, was es nicht erm\u00f6glichte, solche Indizes wiederzuverwenden und die Erstellung des Index jedes Mal erforderlich machte. Der Vorgang zum Erstellen des Index besteht darin, ein Array aus Paaren \u201eObjekt-Position\u201c zu erstellen und es nach Position zu sortieren, was bei gro\u00dfen Pack-Files viel Zeit in Anspruch nehmen kann.     <\/p>\n<p>Zum Beispiel wurde die Ausgabe des Inhalts von Objekten, bei der ein direkter Index verwendet wurde, 62-mal schneller durchgef\u00fchrt als die Anzeige der Gr\u00f6\u00dfe von Objekten, f\u00fcr die die Daten zur Beziehung zwischen Position und Objekt nicht indiziert wurden. Nach der Verwendung des R\u00fcckw\u00e4rtsindex ben\u00f6tigten die genannten Operationen etwa die gleiche Zeit. R\u00fcckw\u00e4rtsindizes erm\u00f6glichen es auch, die Vorg\u00e4nge beim Senden von Objekten bei den Befehlen fetch und push durch die direkte \u00dcbertragung bereits bereitgestellter Daten von der Festplatte zu beschleunigen.    <center><img decoding=\"async\" alt=\"Das System zur Verwaltung von Quelltexten Git 2.41 ist verf\u00fcgbar\" src=\"\/wp-content\/uploads\/2023\/06\/ed6cb7102da37d1262fd3079ac983158.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>      <\/p>\n<li class=\"l\"> Im \u201eCredential Helper\u201c-Protokoll, das zum \u00dcbertragen von Anmeldeinformationen beim Zugriff auf Repositories mit eingeschr\u00e4nktem Zugriff verwendet wird, wurde die Unterst\u00fctzung f\u00fcr die \u00dcbertragung von WWW-Authenticate-Headern zwischen dem Anmeldeinformations-Handler und dem Service, bei dem die Authentifizierung erfolgt, hinzugef\u00fcgt. Die Unterst\u00fctzung des WWW-Authenticate-Headers erm\u00f6glicht die \u00dcbertragung von OAuth-Scope-Parametern f\u00fcr eine differenziertere Benutzerzugriffssteuerung auf Repositories und die Abgrenzung der Bereiche, die f\u00fcr Anfragen verf\u00fcgbar sind.\n<li class=\"l\"> Der Befehl for-each-ref wurde um die Formatierungsoption &#171;%(ahead-behind:&lt;base&gt;)&#187; erg\u00e4nzt, die es erm\u00f6glicht, Informationen \u00fcber die Anzahl der Commits zu erhalten, die in einem bestimmten Branch im Vergleich zu einem anderen Branch vorhanden oder nicht vorhanden sind (wie viel ein Branch dem anderen in Bezug auf Commits hinterherhinkt oder voraus ist). Zuvor war es n\u00f6tig, zwei separate Befehle auszuf\u00fchren: &#171;git rev-list &#8212;count main..my-feature&#187;, um die Anzahl der f\u00fcr den Branch einzigartigen Commits zu erhalten, und &#171;git rev-list &#8212;count my-feature..main&#187; f\u00fcr die Anzahl der fehlenden Commits. Jetzt k\u00f6nnen solche Berechnungen auf einen einzigen Befehl reduziert werden, was das Schreiben von Handhabungen vereinfacht und die Ausf\u00fchrungszeit verk\u00fcrzt. Beispielsweise kann zur Anzeige von nicht zusammengef\u00fchrten Branches und zur Bewertung des R\u00fcckstands oder der Vorlaufzeit im Vergleich zu ihrem Hauptbranch ein Einzeiler verwendet werden:           $ git for-each-ref &#8212;no-merged=origin\/HEAD &#092;       &#8212;format=&#8217;%(refname:short) %(ahead-behind:origin\/HEAD)&#8217; &#092;       refs\/heads\/tb\/ | column -t       tb\/cruft-extra-tips 2 96     tb\/for-each-ref&#8212;exclude 16 96     tb\/roaring-bitmaps 47 3      anstelle eines zuvor verwendeten Skripts, das 17 Mal langsamer ausgef\u00fchrt wird:         $ git for-each-ref &#8212;format=&#8217;%(refname:short)&#8217; &#8212;no-merged=origin\/HEAD &#092;       refs\/heads\/tb |       while read ref       do         ahead=&#187;$(git rev-list &#8212;count origin\/HEAD..$ref)&#187;         behind=&#187;$(git rev-list &#8212;count $ref..origin\/HEAD)&#187;         printf &#171;%s %d %d&#092;n&#187; &#171;$ref&#187; &#171;$ahead&#187; &#171;$behind&#187;       done | column -t       tb\/cruft-extra-tips 2 96     tb\/for-each-ref&#8212;exclude 16 96     tb\/roaring-bitmaps 47 3\n<li class=\"l\"> Der Befehl &#171;git fetch&#187; wurde um die Option &#171;&#8212;porcelain&#187; erg\u00e4nzt, deren Verwendung zu einer Ausgabe im Format &#171;&lt;flag&gt; &lt;alter-objekt-id&gt; &lt;neue-objekt-id&gt; &lt;lokale-referenz&gt;&#187; f\u00fchrt, die weniger lesbar, aber besser f\u00fcr die Analyse in Skripten geeignet ist.\n<li class=\"l\"> Die Einstellung &#171;fetch.hideRefs&#187; wurde hinzugef\u00fcgt, um die Vorg\u00e4nge von &#171;git fetch&#187; zu beschleunigen, indem ein Teil der Referenzen im lokalen Repository w\u00e4hrend der \u00dcberpr\u00fcfung der Vollst\u00e4ndigkeit der Objekte durch den Server ausgeblendet wird, was Zeit spart, indem nur \u00fcberpr\u00fcft wird, <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/server\/\"   title=\"Server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1714\">Server<\/a>, von denen Daten direkt abgerufen werden. Zum Beispiel hat bei einem Test auf einem System mit Repositories, die eine gro\u00dfe Anzahl an verfolgten externen Links enthalten, das Ausschlie\u00dfen aller Links au\u00dfer den an das Ziel adressierten <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/server\/dts-shicago\/\"   title=\"zu einem Server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2936\">zu einem Server<\/a> $remote, was die Ausf\u00fchrungszeit des &#171;git fetch&#187;-Befehls von 20 Minuten auf 30 Sekunden verk\u00fcrzt hat.       $ git -c fetch.hideRefs=refs -c fetch.hideRefs=!refs\/remotes\/$remote &#092;     fetch $remote\n<li class=\"l\"> Im Befehl &#171;git fsck&#187; wurde die M\u00f6glichkeit zur \u00dcberpr\u00fcfung auf Besch\u00e4digungen, zur \u00dcbereinstimmung von Pr\u00fcfziffern und zur Korrektheit der Werte in den Bitmaps zur Verf\u00fcgbarkeit und in den R\u00fcckindexen implementiert.\n<li class=\"l\"> Im Team &#171;git clone &#8212;local&#187; wurde eine Fehlermeldung implementiert, wenn versucht wird, aus einem Repository zu kopieren, das symbolische Links innerhalb von $GIT_DIR enth\u00e4lt.        <\/ul>\n<p>Quelle: <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.1.1 - 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\/de\/blog\/news\/dostupna-sistema-upravleniya-ishodnymi-tekstami-git-2-41\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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\udd47Das System zur Verwaltung von Quelltexten Git 2.41 ist verf\u00fcgbar | ProHoster","description":"Nach drei Monaten Entwicklung wurde die Version 2.41 des verteilten Systems zur Verwaltung von Quelltexten Git ver\u00f6ffentlicht.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/dostupna-sistema-upravleniya-ishodnymi-tekstami-git-2-41","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/108813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=108813"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/108813\/revisions"}],"predecessor-version":[{"id":160216,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/108813\/revisions\/160216"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/108814"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=108813"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=108813"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=108813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}