{"id":141016,"date":"2025-08-19T11:11:54","date_gmt":"2025-08-19T09:11:54","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-51"},"modified":"2025-08-19T11:11:54","modified_gmt":"2025-08-19T09:11:54","slug":"vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-51","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-51","title":{"rendered":"Wydanie systemu zarz\u0105dzania wersjami Git 2.51","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Po dw\u00f3ch miesi\u0105cach intensywnego rozwoju, zaprezentowano wydanie systemu zarz\u0105dzania wersjami Git 2.51. Git wyr\u00f3\u017cnia si\u0119 wysok\u0105 wydajno\u015bci\u0105 i oferuje narz\u0119dzia do nieliniowego rozwoju, oparte na rozga\u0142\u0119zieniach i scalaniu ga\u0142\u0119zi. Aby zapewni\u0107 integralno\u015b\u0107 historii i odporno\u015b\u0107 na zmiany &#171;z wsteczn\u0105 dat\u0105&#187;, zastosowano niejawne haszowanie ca\u0142ej poprzedniej historii w ka\u017cdym commicie, a tak\u017ce uwierzytelnianie cyfrowymi podpisami deweloper\u00f3w dla poszczeg\u00f3lnych tag\u00f3w i commit\u00f3w. Kod Git jest rozpowszechniany na licencji GPLv2+.    <\/p>\n<p>W por\u00f3wnaniu do poprzedniej wersji w nowej wersji wprowadzono 506 zmian, przygotowanych przez 91 dewelopera (21 z nich wzi\u0119\u0142o udzia\u0142 w rozwijaniu Git po raz pierwszy). G\u0142\u00f3wne nowo\u015bci (1, 2, 3):  <\/p>\n<ul>\n<li class=\"l\"> Zwi\u0119kszono wydajno\u015b\u0107 polece\u0144 &#171;git push&#187; i &#171;git fetch&#187; w repozytoriach z du\u017c\u0105 liczb\u0105 odniesie\u0144. Przyspieszenie uzyskano dzi\u0119ki aktualizacji odniesie\u0144 w trybie wsadowym, w kt\u00f3rym w jednej transakcji przetwarzanych jest kilka odniesie\u0144, zamiast tworzenia osobnej transakcji dla aktualizacji ka\u017cdego odniesienia. Optymalizacja znacznie zwi\u0119kszy\u0142a wydajno\u015b\u0107 backendu &#171;reftable&#187;, kt\u00f3ry teraz przewy\u017csza pod wzgl\u0119dem wydajno\u015bci backend &#171;files&#187;. Na przyk\u0142ad, w testowym repozytorium z 10 tys. odniesie\u0144 wydajno\u015b\u0107 &#171;git fetch&#187; przy u\u017cyciu backendu &#171;reftable&#187; wzros\u0142a 22 razy, a przy u\u017cyciu backendu &#171;files&#187; \u2014 o 1,25 raza. Dla &#171;git push&#187; wzrost wyni\u00f3s\u0142 odpowiednio 18 i 1,21 razy.\n<li class=\"l\"> Zaprezentowano now\u0105 metod\u0119 pakowania w plikach paczek cz\u0119\u015bci repozytori\u00f3w, kt\u00f3re nie s\u0105 powi\u0105zane z obiektami, kt\u00f3rych nie mo\u017cna \u015bledzi\u0107 i na kt\u00f3re w repozytorium nie ma odniesie\u0144 (nie s\u0105 powi\u0105zane z ga\u0142\u0119ziami ani tagami). Informacje o nieosi\u0105galnych obiektach s\u0105 przechowywane w oddzielnych plikach paczek (&#171;cruft packs&#187;), co prowadzi\u0142o do konieczno\u015bci ich odzwierciedlenia w indeksach wielu paczek MIDX (multi-pack index) w celu uwzgl\u0119dnienia obiekt\u00f3w, kt\u00f3re pocz\u0105tkowo by\u0142y nieosi\u0105galne i przechowywane tylko w paczce typy cruft, ale sta\u0142y si\u0119 osi\u0105galne po commicie, kt\u00f3ry si\u0119 do nich odnosi\u0142.\n<p>W nowej wersji przy ponownym pakowaniu plik\u00f3w pack zapewniono zachowanie dodatkowych kopii osi\u0105galnych obiekt\u00f3w, przechowywanych wy\u0142\u0105cznie w plikach cruft. Takie zmiany gwarantuj\u0105, \u017ce zestaw plik\u00f3w pack u\u017cywanych do przechowywania osi\u0105galnych obiekt\u00f3w nie zawiera obiekt\u00f3w, kt\u00f3re odnosz\u0105 si\u0119 do innych obiekt\u00f3w przechowywanych poza tym zestawem. Aby wykluczy\u0107 niedost\u0119pne zawarto\u015bci plik\u00f3w cruft z indeks\u00f3w wielopaku (MIDX) zaproponowano ustawienie \u201erepack.MIDXMustContainCruft\u201d, kt\u00f3re pozwala znacznie zmniejszy\u0107 rozmiar takich indeks\u00f3w. W\u0142\u0105czenie tego ustawienia w repozytorium GitHub pozwoli\u0142o na zmniejszenie rozmiaru indeks\u00f3w MIDX o 38%, przyspieszenie zapisu do indeks\u00f3w MIDX o 35% oraz poprawienie wydajno\u015bci odczytu o 5%.      <\/p>\n<li class=\"l\"> Do polecenia \u201egit pack-objects\u201d dodano opcj\u0119 \u201e--path-walk\u201d, kt\u00f3ra w\u0142\u0105cza now\u0105 metod\u0119 gromadzenia informacji o obiektach przy ponownym pakowaniu plik\u00f3w pack. Zamiast przechodzi\u0107 przez obiekty w kolejno\u015bci rewizji, w trybie \u201e--path-walk\u201d obiekty s\u0105 przetwarzane na podstawie \u015bcie\u017cek do plik\u00f3w, co pozwala na jednoczesne pakowanie wszystkich obiekt\u00f3w z tymi samymi \u015bcie\u017ckami do plik\u00f3w. Takie podej\u015bcie pozwala na pomini\u0119cie heurystyki opartej na haszowaniu w celu okre\u015blenia zwi\u0105zku obiektu z jego \u015bcie\u017ck\u0105 do pliku oraz na pozbycie si\u0119 sortowania obiekt\u00f3w przed pakowaniem. W trybie \u201e--path-walk\u201d rozmiar generowanych plik\u00f3w pack jest znacznie mniejszy ni\u017c przy grupowaniu obiekt\u00f3w za pomoc\u0105 hashy.\n<li class=\"l\"> Okre\u015blono format do wymiany zapisanych stan\u00f3w roboczego drzewa i indeks\u00f3w w repozytorium, tworzonych za pomoc\u0105 polecenia \u201egit stash\u201d. Nowy format pozwala kodowa\u0107 zapisane zmiany (zapisy stash) w postaci sekwencji commit\u00f3w. W celu importu i eksportu zaproponowano podpolecenia \u201egit stash import\u201d i \u201egit stash export\u201d, kt\u00f3re mo\u017cna u\u017cywa\u0107 do przenoszenia zapisanych stan\u00f3w z jednego systemu do drugiego oraz do wykonywania operacji push lub pull na tych stanach, jak na zwyk\u0142ych ga\u0142\u0119ziach lub tagach.       git stash export --to-ref refs\/stashes\/my-stash     git push origin refs\/stashes\/my-stash     ...     git fetch origin '+refs\/stashes\/*:refs\/stashes\/*'     git stash import refs\/stashes\/my-stash\n<li class=\"l\"> W zespole &#171;git cat-file&#187;, wyprowadzaj\u0105cym zawarto\u015b\u0107 okre\u015blonych obiekt\u00f3w, przy u\u017cyciu opcji &#171;&#8212;batch&#187; i &#171;&#8212;batch-check&#187; wprowadzono mo\u017cliwo\u015b\u0107 wy\u015bwietlania informacji o brakuj\u0105cych obiektach (na przyk\u0142ad z powodu uszkodzenia repozytorium) oraz submodu\u0142ach. Wcze\u015bniej przy wskazaniu \u015bcie\u017cki do submodu\u0142u polecenie &#171;git cat-file &#8212;batch-check&#187; zwraca\u0142o &#171;missing&#187;, a teraz poka\u017ce identyfikator obiektu.\n<li class=\"l\"> W poleceniu &#171;git log&#187; zastosowano optymalizacje oparte na filtrach Blooma w celu przyspieszenia wyszukiwania w historii zmian przy podawaniu filtr\u00f3w z wieloma \u015bcie\u017ckami plik\u00f3w, na przyk\u0142ad &#171;git log &#8212; path\/to\/a path\/to\/b&#187;.\n<li class=\"l\"> Stabilizowane s\u0105 polecenia &#171;git switch&#187; i &#171;git restore&#187;, kt\u00f3re od 2019 roku by\u0142y traktowane jako eksperymentalne. Polecenia te s\u0105 przedstawiane jako nowoczesne odpowiedniki &#171;git checkout&#187;, oddzielaj\u0105ce tak ma\u0142o zwi\u0105zane funkcje tej komendy, jak manipulacja ga\u0142\u0119ziami (zmiana i tworzenie) oraz przywracanie plik\u00f3w w katalogu roboczym.\n<li class=\"l\"> Og\u0142oszono, \u017ce polecenie &#171;git whatchanged&#187;, r\u00f3wnowa\u017cne z &#171;git log &#8212;raw&#187;, b\u0119dzie uznawane za przestarza\u0142e i planowane do usuni\u0119cia w ga\u0142\u0119zi Git 3.0.\n<li class=\"l\"> Do polecenia &#171;git for-each-ref&#187; dodano opcj\u0119 &#171;&#8212;start-after&#187;, kt\u00f3ra mo\u017ce by\u0107 stosowana \u0142\u0105cznie z opcj\u0105 &#171;&#8212;count&#187; w celu organizacji paginowanego wyj\u015bcia.\n<li class=\"l\"> Do polece\u0144 &#171;git merge&#187; i &#171;git pull&#187; dodano opcj\u0119 &#171;&#8212;compact-summary&#187; do u\u017cywania kompaktowego formatu podsumowania informacji o zmianach zamiast formatu diffstat.\n<li class=\"l\"> W kodzie \u017ar\u00f3d\u0142owym Gita zezwolono na stosowanie s\u0142owa kluczowego &#171;bool&#187;, kt\u00f3re pojawi\u0142o si\u0119 w standardzie C99. Udzielono r\u00f3wnie\u017c dokumentacji na temat niekt\u00f3rych mo\u017cliwo\u015bci C99, kt\u00f3re s\u0105 eksperymentalnie u\u017cywane w Gicie (na przyk\u0142ad w po\u0142owie 2026 roku planuje si\u0119 zezwolenie na stosowanie konstrukcji &#171;(struct foo){ .member = value };&#187;). Kompilator z obs\u0142ug\u0105 C99 jest wymagany dla Gita od 2021 roku, jednak mo\u017cliwo\u015bci specyfikacji C99 s\u0105 wprowadzane bardzo ostro\u017cnie w celu zachowania kompatybilno\u015bci z kompilatorami, kt\u00f3re jedynie cz\u0119\u015bciowo wspieraj\u0105 ten standard.\n<li class=\"l\"> Do zasad przyjmowania poprawek wprowadzono zmiany, kt\u00f3re pozwalaj\u0105 na wysy\u0142anie poprawek pod pseudonimem, a nie tylko pod prawdziwym imieniem dewelopera. Zmiana ta jest zgodna z zasadami przyjmowania poprawek do j\u0105dra Linux.\n<li class=\"l\"> Zaktualizowano list\u0119 zmian naruszaj\u0105cych kompatybilno\u015b\u0107, kt\u00f3re b\u0119d\u0105 wprowadzone w ga\u0142\u0119zi Git 3.0. W\u015br\u00f3d istotnych zmian w nadchodz\u0105cej wersji Git 3.0 wyr\u00f3\u017cnia si\u0119 domy\u015blne przej\u015bcie na identyfikatory obiekt\u00f3w oparte na algorytmie haszuj\u0105cym SHA-256 podczas inicjalizacji nowych repozytori\u00f3w oraz wykorzystanie formatu \u201ereftable\u201d do przechowywania odniesie\u0144 do ga\u0142\u0119zi i tag\u00f3w w repozytorium (wykorzystano magazyn blokowy z projektu JGit, zoptymalizowany do przechowywania bardzo du\u017cej liczby odniesie\u0144).      <\/ul>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=63742\">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 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \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.51. Git \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \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, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u0435\u043d\u0438\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u044f\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0442\u0435\u0433\u043e\u0432 [&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-141016","post","type-post","status-publish","format-standard","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 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \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.51.\" \/>\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\/pl\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-51\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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.51 | 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 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \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.51.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-51\" \/>\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=\"2025-08-19T09:11:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-08-19T09:11:54+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\udd47Wydanie systemu zarz\u0105dzania kodem \u017ar\u00f3d\u0142owym Git 2.51 | ProHoster","description":"Po dw\u00f3ch miesi\u0105cach prac deweloperskich zaprezentowano wydanie rozproszonego systemu zarz\u0105dzania kodem \u017ar\u00f3d\u0142owym Git 2.51.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-51","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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.51 | 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 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \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.51.","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-51","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":"2025-08-19T09:11:54+00:00","article:modified_time":"2025-08-19T09:11:54+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"141016","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":"2026-01-23 14:20:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 14:20:20","updated":"2026-01-23 14:20:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/141016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=141016"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/141016\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=141016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=141016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=141016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}