{"id":99450,"date":"2021-03-16T16:22:41","date_gmt":"2021-03-16T14:22:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31"},"modified":"2021-03-16T16:22:41","modified_gmt":"2021-03-16T14:22:41","slug":"vypusk-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31","title":{"rendered":"Vyd\u00e1n\u00ed distribuovan\u00e9ho syst\u00e9mu spr\u00e1vy zdrojov\u00fdch k\u00f3d\u016f Git 2.31","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Byl vyd\u00e1n nov\u00fd distribuovan\u00fd syst\u00e9m pro spr\u00e1vu verz\u00ed Git 2.31. Git je jedn\u00edm z nejpopul\u00e1rn\u011bj\u0161\u00edch, nejspolehliv\u011bj\u0161\u00edch a v\u00fdkonn\u00fdch syst\u00e9m\u016f pro spr\u00e1vu verz\u00ed, kter\u00fd poskytuje flexibiln\u00ed prost\u0159edky pro neline\u00e1rn\u00ed v\u00fdvoj zalo\u017een\u00e9 na v\u011btven\u00ed a slu\u010dov\u00e1n\u00ed v\u011btv\u00ed. Pro zaji\u0161t\u011bn\u00ed integrity historie a odolnosti v\u016f\u010di 'zp\u011btn\u00fdm' zm\u011bn\u00e1m se pou\u017e\u00edv\u00e1 implicitn\u00ed hashov\u00e1n\u00ed cel\u00e9 p\u0159edchoz\u00ed historie v ka\u017ed\u00e9m commitu, je tak\u00e9 mo\u017en\u00e9 ov\u011b\u0159it digit\u00e1ln\u00edmi podpisy jednotliv\u00e9 tagy a commity od v\u00fdvoj\u00e1\u0159\u016f.       <\/p>\n<p>Ve srovn\u00e1n\u00ed s p\u0159edchoz\u00ed verz\u00ed obsahuje nov\u00e1 verze 679 zm\u011bn, kter\u00e9 p\u0159ipravilo 85 v\u00fdvoj\u00e1\u0159\u016f, z nich\u017e 23 se z\u00fa\u010dastnilo v\u00fdvoje poprv\u00e9. Hlavn\u00ed novinky:  <\/p>\n<ul>\n<li class=\"l\"> Byl p\u0159id\u00e1n p\u0159\u00edkaz 'git maintenance', kter\u00fd umo\u017e\u0148uje prov\u00e1d\u011bt pravideln\u00e9 \u00fadr\u017ebov\u00e9 \u00fakony na syst\u00e9mech, kter\u00e9 nepodporuj\u00ed cron. Nap\u0159\u00edklad pomoc\u00ed nov\u00e9ho p\u0159\u00edkazu lze organizovat pravideln\u00fd b\u011bh procesu balen\u00ed repozit\u00e1\u0159e, aby se ne\u010dekalo na dokon\u010den\u00ed blokov\u00e1n\u00ed repozit\u00e1\u0159e p\u0159i automatick\u00e9m prov\u00e1d\u011bn\u00ed balen\u00ed b\u011bhem spu\u0161t\u011bn\u00ed r\u016fzn\u00fdch p\u0159\u00edkaz\u016f. P\u0159\u00edkaz 'git maintenance' umo\u017e\u0148uje prov\u00e1d\u011bt optimalizace a \u00fakony \u00fadr\u017eby optim\u00e1ln\u00ed struktury repozit\u00e1\u0159e na pozad\u00ed, ani\u017e by blokoval interaktivn\u00ed relaci \u2014 ka\u017edou hodinu se prov\u00e1d\u00ed \u00faloha pro p\u0159edb\u011b\u017en\u00e9 na\u010d\u00edt\u00e1n\u00ed nov\u00fdch objekt\u016f z vzd\u00e1len\u00e9ho repozit\u00e1\u0159e a aktualizaci souboru s grafem commit\u016f, a ka\u017edou noc se spou\u0161t\u00ed proces balen\u00ed repozit\u00e1\u0159e.\n<li class=\"l\"> Byla p\u0159id\u00e1na podpora pro uchov\u00e1v\u00e1n\u00ed na disku reverzn\u00edho indexu (revindex) pro pack-soubory. P\u0159ipom\u00edn\u00e1me, \u017ee Git ukl\u00e1d\u00e1 v\u0161echna data ve form\u011b objekt\u016f, kter\u00e9 jsou um\u00edst\u011bny v jednotliv\u00fdch souborech. Pro zv\u00fd\u0161en\u00ed efektivity pr\u00e1ce s repozit\u00e1\u0159em se objekty d\u00e1le umis\u0165uj\u00ed do pack-soubor\u016f, v nich\u017e jsou informace prezentov\u00e1ny ve form\u011b proudu objekt\u016f, kter\u00e9 n\u00e1sleduj\u00ed za sebou (podobn\u00fd form\u00e1t se pou\u017e\u00edv\u00e1 p\u0159i p\u0159enosu objekt\u016f p\u0159\u00edkazy git fetch a git push). Pro ka\u017ed\u00fd pack-soubor se vytv\u00e1\u0159\u00ed indexov\u00fd soubor (.idx), kter\u00fd umo\u017e\u0148uje velmi rychle ur\u010dit offset v pack-souboru podle identifik\u00e1toru objektu, kde se dan\u00fd objekt nach\u00e1z\u00ed. Navr\u017een\u00fd reversn\u00ed index (.rev) v Git 2.31 m\u00e1 za c\u00edl optimalizovat proces ur\u010dov\u00e1n\u00ed identifik\u00e1toru objektu podle informac\u00ed o um\u00edst\u011bn\u00ed objektu v pack-souboru.\n<p>D\u0159\u00edve bylo takov\u00e9 transformace prov\u00e1d\u011bno na m\u00edst\u011b b\u011bhem anal\u00fdzy pack souboru a uchov\u00e1valo se pouze v pam\u011bti, co\u017e neumo\u017e\u0148ovalo op\u011btovn\u00e9 vyu\u017eit\u00ed podobn\u00fdch index\u016f a nutilo generovat index poka\u017ed\u00e9. Operace tvorby indexu se redukuje na vytv\u00e1\u0159en\u00ed pole z p\u00e1r\u016f 'objekt\u2013pozice' a jejich \u0159azen\u00ed podle pozice, co\u017e m\u016f\u017ee trvat dlouhou dobu pro velk\u00e9 pack soubory.     <\/p>\n<p>Nap\u0159\u00edklad operace v\u00fdstupu obsahu objekt\u016f, p\u0159i kter\u00e9 byl pou\u017eit p\u0159\u00edm\u00fd index, byla 62kr\u00e1t rychlej\u0161\u00ed ne\u017e operace zobrazen\u00ed velikosti objekt\u016f, pro kter\u00e9 nebyla data o spojen\u00ed pozice s objektem indexov\u00e1na. Po pou\u017eit\u00ed zp\u011btn\u00e9ho indexu za\u010daly m\u00edt uveden\u00e9 operace p\u0159ibli\u017en\u011b stejn\u00fd \u010das. Zp\u011btn\u00e9 indexy tak\u00e9 umo\u017e\u0148uj\u00ed urychlit operace odes\u00edl\u00e1n\u00ed objekt\u016f p\u0159i prov\u00e1d\u011bn\u00ed p\u0159\u00edkaz\u016f fetch a push d\u00edky p\u0159\u00edm\u00e9mu p\u0159enosu ji\u017e p\u0159ipraven\u00fdch dat z disku. Ve v\u00fdchoz\u00edm nastaven\u00ed se zp\u011btn\u00e9 indexy nevytv\u00e1\u0159ej\u00ed, pro jejich generaci je pot\u0159eba aktivovat volbu \"git config pack.writeReverseIndex true\" s n\u00e1sledn\u00fdm zabalen\u00edm repozit\u00e1\u0159e p\u0159\u00edkazem \"git repack -Ad\".    <\/p>\n<li class=\"l\"> Byly p\u0159id\u00e1ny optimalizace v\u00fdkonu zalo\u017een\u00e9 na v\u00fdskytu ve form\u00e1tu souboru commit-graph, kter\u00fd se pou\u017e\u00edv\u00e1 pro optimalizaci p\u0159\u00edstupu k informac\u00edm o commitech, nov\u00e1 data o \u010d\u00edsle generace commitu, kter\u00e1 mohou b\u00fdt pou\u017eita pro urychlen\u00ed dal\u0161\u00edch operac\u00ed s commity.\n<li class=\"l\"> Byly roz\u0161\u00ed\u0159eny mo\u017enosti p\u0159eps\u00e1n\u00ed n\u00e1zvu v\u00fdchoz\u00ed v\u011btve, kter\u00e1 se pou\u017e\u00edv\u00e1 ve v\u00fdchoz\u00edm nastaven\u00ed v nov\u00fdch repozit\u00e1\u0159\u00edch (nastaven\u00ed init.defaultBranch). P\u0159i p\u0159\u00edstupu k extern\u00edm repozit\u00e1\u0159\u016fm se git pokou\u0161\u00ed extrahovat v\u011btev, na kterou ukazuje HEAD, tj. pokud extern\u00ed <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/cs\/server\/\"   title=\"server\" data-wpil-keyword-link=\"linked\">server<\/a> pou\u017e\u00edv\u00e1 ve v\u00fdchoz\u00edm nastaven\u00ed v\u011btev \"main\", tak\u017ee p\u0159\u00edkaz \"git clone\" se pokus\u00ed lok\u00e1ln\u011b vyjmout \"main\". V Git 2.31 je podpora takov\u00e9ho vyjmut\u00ed nyn\u00ed implementov\u00e1na i pro pr\u00e1zdn\u00e9 repozit\u00e1\u0159e. Nap\u0159\u00edklad p\u0159i lok\u00e1ln\u00edm klonov\u00e1n\u00ed nov\u00e9ho repozit\u00e1\u0159e p\u0159ed p\u0159id\u00e1n\u00edm prvn\u00edch patch\u016f bude lok\u00e1ln\u00ed kopie nyn\u00ed obsahovat nastavenou hodnotu na extern\u00edm. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/cs\/server\/dts-dronten\/\"   title=\"serveru\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2621\">serveru<\/a> jm\u00e9no v\u00fdchoz\u00ed v\u011btve.\n<li class=\"l\"> Do p\u0159\u00edkazu \"git rev-list\" byla p\u0159id\u00e1na volba \"--disk-usage\", kter\u00e1 umo\u017e\u0148uje vypsat souhrnn\u00e9 \u00fadaje o velikosti objekt\u016f.\n<li class=\"l\"> V o\u010dek\u00e1v\u00e1n\u00ed nadch\u00e1zej\u00edc\u00ed zm\u011bny backendu pro prov\u00e1d\u011bn\u00ed slou\u010den\u00ed bylo v\u00fdrazn\u011b optimalizov\u00e1no ur\u010dov\u00e1n\u00ed p\u0159ejmenov\u00e1n\u00ed.\n<li class=\"l\"> Podpora zastaral\u00e9 knihovny regul\u00e1rn\u00edch v\u00fdraz\u016f PCRE1 byla ukon\u010dena.\n<li class=\"l\"> Byla poskytnuta mo\u017enost vynucen\u00e9ho z\u00e1kazu pou\u017e\u00edv\u00e1n\u00ed zkr\u00e1cen\u00fdch odkaz\u016f, kter\u00fd funguje nez\u00e1visle na algoritmu hashov\u00e1n\u00ed. Z\u00e1kaz se aktivuje p\u0159i\u0159azen\u00edm hodnoty \"no\" parametru core.abbrev.\n<li class=\"l\"> Do p\u0159\u00edkazu \"git rev-parse\" byla p\u0159id\u00e1na volba \"--path-format=(absolute|relative)\" pro explicitn\u00ed ur\u010den\u00ed v\u00fdstupu relativn\u00edch nebo absolutn\u00edch cest.\n<li class=\"l\"> Ve skriptech pro automatick\u00e9 dopl\u0148ov\u00e1n\u00ed vstupu v Bash bylo zjednodu\u0161en\u00e9 p\u0159id\u00e1n\u00ed pravidel dopl\u0148ov\u00e1n\u00ed pro vlastn\u00ed podp\u0159\u00edkazy \"git\".\n<li class=\"l\"> Do p\u0159\u00edkazu \"git bundle\" byla p\u0159id\u00e1na volba \"--stdin\" pro \u010dten\u00ed odkaz\u016f ze standardn\u00edho vstupu.\n<li class=\"l\"> Do p\u0159\u00edkazu \"git log\" byla p\u0159id\u00e1na nov\u00e1 volba \"--diff-merges=\".\n<li class=\"l\"> Do p\u0159\u00edkazu \"git ls-files\" byla p\u0159id\u00e1na volba \"--deduplicatecan\" pro odstran\u011bn\u00ed duplicit p\u0159i v\u00fdstupu.\n<li class=\"l\"> Byly p\u0159id\u00e1ny nov\u00e9 masky pro vylou\u010den\u00ed rozsahu commit\u016f \u2014 \"^!\" a \"^-\n\".\n<li class=\"l\"> Do p\u0159\u00edkazu \"git range-diff\" byly p\u0159id\u00e1ny mo\u017enosti \"--left-only\" a \"--right-only\" pro zobrazen\u00ed pouze jedn\u00e9 strany porovn\u00e1van\u00e9ho rozsahu.\n<li class=\"l\"> Do t\u00fdm\u016f &#171;git diff&#187; a &#171;git log&#187; byly p\u0159id\u00e1ny volby &#8212;skip-to=&lt;path&gt;&#187; a &#171;&#8212;rotate-to=&lt;path&gt;&#187; pro p\u0159esko\u010den\u00ed nebo p\u0159esun na konec po\u010d\u00e1te\u010dn\u00edch cest.\n<li class=\"l\"> Do p\u0159\u00edkazu &#171;git difftool&#187; byla p\u0159id\u00e1na volba &#171;&#8212;skip-to=&lt;path&gt;&#187; pro obnoven\u00ed p\u0159eru\u0161en\u00e9 relace z libovoln\u00e9 cesty.\n<li class=\"l\"> Kodex chov\u00e1n\u00ed (Code-of-conduct), kter\u00fd definuje z\u00e1kladn\u00ed principy \u0159e\u0161en\u00ed konflikt\u016f mezi v\u00fdvoj\u00e1\u0159i, byl aktualizov\u00e1n na verzi 2.0 (d\u0159\u00edve pou\u017e\u00edvan\u00e1 verze 1.4).<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54765\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0441\u0442\u0443\u043f\u0435\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.31. 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, \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u0435\u043d\u0438\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c\u0438 [&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-99450","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\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.31.\" \/>\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\/cs\/blog\/news\/vypusk-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\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.31 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\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.31.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31\" \/>\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=\"2021-03-16T14:22:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-03-16T14:22:41+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\udd47Vyd\u00e1n\u00ed distribuovan\u00e9ho syst\u00e9mu spr\u00e1vy verz\u00ed Git 2.31 | ProHoster","description":"Vyd\u00e1n\u00ed distribuovan\u00e9ho syst\u00e9mu spr\u00e1vy verz\u00ed Git 2.31 je nyn\u00ed k dispozici.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\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.31 | ProHoster","og:description":"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\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.31.","og:url":"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31","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":"2021-03-16T14:22:41+00:00","article:modified_time":"2021-03-16T14:22:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"99450","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":null,"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":"2021-03-16 14:26:20","updated":"2026-02-09 21:38:09","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/99450","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=99450"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/99450\/revisions"}],"predecessor-version":[{"id":172923,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/99450\/revisions\/172923"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=99450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=99450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=99450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}