{"id":35419,"date":"2019-10-31T22:04:14","date_gmt":"2019-10-31T19:04:14","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ispolzujte-git-pri-dokumentirovanii\/"},"modified":"2019-10-31T22:04:14","modified_gmt":"2019-10-31T19:04:14","slug":"ispolzujte-git-pri-dokumentirovanii","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/ispolzujte-git-pri-dokumentirovanii","title":{"rendered":"U\u017cyj GIT podczas dokumentacji","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Czasami nie tylko sama dokumentacja, ale tak\u017ce proces pracy nad ni\u0105 mo\u017ce by\u0107 krytyczny. Na przyk\u0142ad w przypadku projekt\u00f3w lwia cz\u0119\u015b\u0107 pracy zwi\u0105zana jest z przygotowaniem dokumentacji, a niew\u0142a\u015bciwy proces mo\u017ce prowadzi\u0107 do b\u0142\u0119d\u00f3w, a nawet utraty informacji, a co za tym idzie, do utraty czasu i korzy\u015bci. Ale nawet je\u015bli ten temat nie jest centralny w Twojej pracy i znajduje si\u0119 na peryferiach, to i tak w\u0142a\u015bciwy proces mo\u017ce poprawi\u0107 jako\u015b\u0107 dokumentu i zaoszcz\u0119dzi\u0107 czas.<\/p>\n<p>Przedstawione podej\u015bcie, z <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nihole\/md2docx\">przyk\u0142adem konkretnej realizacji<\/a><\/noindex>, ma niski pr\u00f3g wej\u015bcia. Technicznie, ju\u017c jutro mo\u017cesz zacz\u0105\u0107 pracowa\u0107 na nowo. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Sformu\u0142owanie zadania<\/h3>\n<p>\nMusisz stworzy\u0107 pewien dokument lub zestaw dokument\u00f3w. Mo\u017ce to by\u0107 dokumentacja projektowa lub protoko\u0142owanie sieci, albo co\u015b prostszego, na przyk\u0142ad musisz opisa\u0107 procesy w firmie lub w swoim dziale. Generalnie chodzi o ka\u017cdy dokument lub zestaw dokument\u00f3w z tekstem, obrazkami, tabelami\u2026 Utrudnimy zadanie tym, \u017ce <\/p>\n<ol>\n<li>ta praca zak\u0142ada wsp\u00f3lny wysi\u0142ek, zaanga\u017cowanie grupy lub kilku grup pracownik\u00f3w<\/li>\n<li>na wyj\u015bciu chcesz mie\u0107 dokument w okre\u015blonym formacie, z atrybutami korporacyjnego stylu, stworzony wed\u0142ug okre\u015blonego szablonu. Na potrzeby tego opisu przyjmijmy, \u017ce jest to MS Word (.docx)<\/li>\n<\/ol>\n<p>\n10 lat temu podej\u015bcie by\u0142oby jednoznaczne: stworzyli\u015bmy by dokument MS Word lub dokumenty i w jaki\u015b spos\u00f3b zorganizowali prac\u0119 nad zmianami. <\/p>\n<p>I to podej\u015bcie wci\u0105\u017c jest aktualne. Korzystaj\u0105 z niego r\u00f3wnie\u017c du\u017ce integratory przy tworzeniu dokumentacji projektowej. Ale intuicyjnie wiadomo, \u017ce, je\u015bli naprawd\u0119 intensywnie, z wieloma poprawkami i dyskusjami, przez d\u0142ugi czas pracujesz nad dokumentem, to to podej\u015bcie nie jest zbyt wygodne.<\/p>\n<blockquote><p><b>Przyk\u0142ad<\/b><\/p>\n<p>Do\u015b\u0107 ostro odczu\u0142em ten problem, pracuj\u0105c w jednej du\u017cej firmie integracyjnej. Proces wprowadzania zmian w dokumentacji projektowej wygl\u0105da\u0142 nast\u0119puj\u0105co:<\/p>\n<ol>\n<li>in\u017cynier pobiera najnowsz\u0105 wersj\u0119 dokumentu MS Word (.docx)<\/li>\n<li>zmienia tytu\u0142<\/li>\n<li>wprowadza poprawki w trybie track<\/li>\n<li>wysy\u0142a dokument z poprawkami do architekta<\/li>\n<li>tak\u017ce wysy\u0142a list\u0119 wszystkich poprawek z komentarzami<\/li>\n<li>architekt analizuje zmiany<\/li>\n<li>je\u015bli wszystko jest w porz\u0105dku, to kopiuje zmiany danych do pliku z ostatni\u0105 wersj\u0105, zmienia wersj\u0119, umieszcza na wsp\u00f3lnym zasobie<\/li>\n<li>je\u015bli s\u0105 uwagi, to inicjowana jest dyskusja (e-mail lub spotkania)<\/li>\n<li>osi\u0105gni\u0119to konsensus<\/li>\n<li>dalej punkty 3 \u2013 9<\/li>\n<\/ol>\n<p>\nDop\u00f3ki praca nie by\u0142a intensywna, to jako\u015b to dzia\u0142a\u0142o. Ale w pewnym momencie ten proces sta\u0142 si\u0119 w\u0105skim gard\u0142em ca\u0142ego projektu i doprowadzi\u0142 do problem\u00f3w. Chodzi o to, \u017ce wszystko staje si\u0119 \u017ale, gdy zmiany s\u0105 wprowadzane cz\u0119sto i jednocze\u015bnie przez kilka zespo\u0142\u00f3w.<\/p>\n<p>Tak wi\u0119c, gdy przeszli\u015bmy do etapu wst\u0119pnego testowania, zacz\u0119\u0142y pojawia\u0107 si\u0119 r\u00f3\u017cne ma\u0142e problemy i, chocia\u017c drobne, konieczne by\u0142o cz\u0119ste zmienianie dokumentacji \u2014 cztery r\u00f3\u017cne zespo\u0142y, codziennie, niemal r\u00f3wnocze\u015bnie, z dyskusjami. Wszystkie te zmiany przechodzi\u0142y przez jednego in\u017cyniera \u2014 architekta. Plik z projektem by\u0142 ogromny, a w konsekwencji architekt by\u0142 przyt\u0142oczony rutynow\u0105 prac\u0105 zwi\u0105zan\u0105 z du\u017c\u0105 ilo\u015bci\u0105 kopiowania, edytowania, pope\u0142nia\u0142 wiele b\u0142\u0119d\u00f3w, musia\u0142 wszystko sprawdza\u0107, ponownie przesy\u0142a\u0107, a og\u00f3lnie to by\u0142o bliskie chaosowi. <\/p>\n<p>W tym przypadku podej\u015bcie, polegaj\u0105ce na pracy nad dokumentem MS Word, dzia\u0142a\u0142o z du\u017cym op\u00f3\u017anieniem i tworzy\u0142o problemy.<\/p><\/blockquote>\n<p><\/p>\n<h3>Git, Markdown<\/h3>\n<p>\nStykaj\u0105c si\u0119 z problemem opisanym w powy\u017cszym przyk\u0142adzie, zacz\u0105\u0142em bada\u0107 t\u0119 kwesti\u0119.<br \/>\nZauwa\u017cy\u0142em, \u017ce coraz popularniejsze staje si\u0119 korzystanie z <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Markdown\">Markdown<\/a><\/noindex> wraz z <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Git\">Gitem<\/a><\/noindex> przy tworzeniu dokument\u00f3w.<\/p>\n<p>Git to narz\u0119dzie do rozwoju. Ale czemu nie u\u017cywa\u0107 go do procesu dokumentowania? W tym przypadku problem wieloosobowej pracy jest rozwi\u0105zany. Ale \u017ceby w pe\u0142ni wykorzysta\u0107 mo\u017cliwo\u015bci Gita, potrzebujemy tekstowego formatu dokumentu, musimy znale\u017a\u0107 inne narz\u0119dzie, kt\u00f3re nie jest MS Word, a do tych cel\u00f3w \u015bwietnie nadaje si\u0119 Markdown. <\/p>\n<p>Markdown to prosty j\u0119zyk znacznik\u00f3w tekstowych. Jest przeznaczony do tworzenia estetycznie wygl\u0105daj\u0105cych tekst\u00f3w w zwyk\u0142ych plikach formatu TXT. Je\u015bli tworzymy nasze dokumenty w Markdown, to po\u0142\u0105czenie Markdown \u2014 Git wydaje si\u0119 naturalne.<\/p>\n<p>I wszystko by\u0142oby dobrze, i w tym miejscu mo\u017cna by zako\u0144czy\u0107, gdyby nie nasz drugi warunek: \"na wyj\u015bciu potrzebujemy dokumentu w okre\u015blonym formacie, z atrybutami stylu korporacyjnego, stworzonego wed\u0142ug okre\u015blonego szablonu\" (i zgodzili\u015bmy si\u0119 na pocz\u0105tku, \u017ce dla pewno\u015bci b\u0119dzie to MS Word). To znaczy, je\u015bli zdecydowali\u015bmy si\u0119 u\u017cy\u0107 Markdown, to musimy jako\u015b przekszta\u0142ci\u0107 ten plik w .docx w wymaganym formacie.<\/p>\n<p>Istniej\u0105 programy do konwersji mi\u0119dzy r\u00f3\u017cnymi formatami, na przyk\u0142ad, <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Pandoc\">Pandoc<\/a><\/noindex>.<br \/>\nMo\u017cesz przekonwertowa\u0107 plik Markdown na format .docx za pomoc\u0105 tego programu.<br \/>\nJednak nale\u017cy pami\u0119ta\u0107, \u017ce po pierwsze, nie wszystko, co znajduje si\u0119 w Markdown, zostanie przekonwertowane na MS Word, a po drugie, MS Word to ca\u0142y kraj w por\u00f3wnaniu z prostym, ale mimo wszystko miasteczkiem, jakim jest Markdown. Istnieje ogromna liczba rzeczy, kt\u00f3re s\u0105 w Wordzie i w \u017cadnej formie nie ma ich w Markdown. Nie mo\u017cna po prostu wzi\u0105\u0107 i z okre\u015blonymi kluczami Pandoc przekonwertowa\u0107 formatu Markdown na po\u017c\u0105dany wygl\u0105d MS Word. Zazwyczaj wi\u0119c, po konwersji, trzeba r\u0119cznie \"poprawi\u0107\" otrzymany dokument .docx, co r\u00f3wnie\u017c mo\u017ce by\u0107 czasoch\u0142onne i prowadzi\u0107 do b\u0142\u0119d\u00f3w.<\/p>\n<p>Gdyby\u015bmy mogli napisa\u0107 skrypt, kt\u00f3ry automatycznie \"wyka\u0144cza\u0142by\" to, z czym nie poradzi\u0142 sobie Pandoc \u2014 to by\u0142oby idealne rozwi\u0105zanie.<\/p>\n<p>Ze wzgl\u0119du na niejednorodno\u015b\u0107 funkcjonalno\u015bci MS Word i Markdown w og\u00f3lnym zarysie, my\u015bl\u0119, \u017ce rozwi\u0105zanie tego problemu jest niemo\u017cliwe, ale czy mo\u017cna to zrobi\u0107 w odniesieniu do konkretnych sytuacji, konkretnych wymaga\u0144? Moje do\u015bwiadczenie pokazuje, \u017ce tak, mo\u017cna to zrobi\u0107 i najprawdopodobniej jest to mo\u017cliwe w wielu, a mo\u017ce nawet w wi\u0119kszo\u015bci sytuacji. <\/p>\n<h3>Rozwi\u0105zanie konkretnego problemu<\/h3>\n<p>\nTak wi\u0119c, w moim przypadku, po konwersji pliku za pomoc\u0105 Pandoc, musia\u0142em r\u0119cznie przeprowadzi\u0107 dodatkow\u0105 obr\u00f3bk\u0119 plik\u00f3w, a mianowicie<\/p>\n<ul>\n<li>dodawa\u0107 w Wordzie pola z automatycznym numerowaniem nag\u0142\u00f3wk\u00f3w (caption) tabel i obrazk\u00f3w<\/li>\n<li>zmienia\u0107 styl dla tabel <\/li>\n<\/ul>\n<p>\nNie znalaz\u0142em, jak to zrobi\u0107 standardowymi (Pandoc) lub znanymi \u015brodkami. Dlatego zastosowa\u0142em skrypt pythona z <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mhammond\/pywin32\">pywin32<\/a><\/noindex> pakietem. W rezultacie uzyska\u0142em pe\u0142n\u0105 automatyzacj\u0119. Teraz mog\u0119 przekonwertowa\u0107 m\u00f3j plik Markdown na potrzebny format dokumentu MS Word jednym poleceniem. <\/p>\n<p>Zobacz szczeg\u00f3\u0142y <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nihole\/md2docx\">tutaj<\/a><\/noindex>.<\/p>\n<blockquote><p><b>Uwagi<\/b><\/p>\n<p>W tym przyk\u0142adzie oczywi\u015bcie przekszta\u0142cam pewien abstrakcyjny plik Markdown, ale dok\u0142adnie ta sama metoda zosta\u0142a zastosowana do \"bojowego\" dokumentu, a w wyniku otrzyma\u0142em praktycznie identyczny dokument MS Word, kt\u00f3ry wcze\u015bniej uzyskiwali\u015bmy przy manualnym formatowaniu. <\/p><\/blockquote>\n<p>\nOg\u00f3lnie, z pywin32 zyskujemy niemal pe\u0142n\u0105 kontrol\u0119 nad dokumentem MS Word, co pozwala na jego edytowanie i dostosowywanie do wymog\u00f3w waszych standard\u00f3w korporacyjnych. Oczywi\u015bcie te same cele mo\u017cna osi\u0105gn\u0105\u0107 przy u\u017cyciu innych narz\u0119dzi, takich jak makra VBA, ale by\u0142o mi \u0142atwiej korzysta\u0107 z Pythona.<\/p>\n<p>Kr\u00f3tka formu\u0142a tego podej\u015bcia:<\/p>\n<pre><code class=\"plaintext\">Markdown + Git -- (co\u015b) --&gt; MS Word<\/code><\/pre>\n<p>\nNie jest tak wa\u017cne, czym jest \u201eco\u015b\u201d. W moim przypadku by\u0142 to Pandoc i Python z pywin32. By\u0107 mo\u017ce masz inne preferencje, ale wa\u017cne jest, \u017ce to jest mo\u017cliwe. I to jest g\u0142\u00f3wny przekaz tego artyku\u0142u.<\/p>\n<p>Podsumowuj\u0105c, idea polega na tym, \u017ce przy takim podej\u015bciu pracujesz tylko z plikiem Markdown i korzystasz z Git do organizowania wsp\u00f3\u0142pracy oraz kontroli wersji, a tylko w razie potrzeby (na przyk\u0142ad w celu przekazania dokumentacji klientowi) automatycznie tworzysz plik w odpowiednim formacie (na przyk\u0142ad MS Word). <\/p>\n<h3>Proces<\/h3>\n<p>\nMy\u015bl\u0119, \u017ce dla wielu ta formu\u0142a jest wystarczaj\u0105ca, aby zrozumie\u0107, jak teraz mo\u017ce by\u0107 zorganizowany proces pracy z dokumentacj\u0105. Niemniej jednak zazwyczaj nawiguj\u0119 w kierunku in\u017cynier\u00f3w sieciowych, wi\u0119c w og\u00f3lnych zarysach poka\u017c\u0119, jak teraz mo\u017ce wygl\u0105da\u0107 proces pracy i jak r\u00f3\u017cni si\u0119 to od podej\u015bcia do edytowania plik\u00f3w MS Word.<\/p>\n<p>Dla pewno\u015bci, jako platform\u0119 do pracy z Git wybierzemy GitHub. Wtedy musisz stworzy\u0107 repozytorium i umie\u015bci\u0107 plik lub pliki Markdown w ga\u0142\u0119zi master, z kt\u00f3rymi planujesz pracowa\u0107. <\/p>\n<p>Rozwa\u017cymy prosty proces oparty na \u201egithub flow\u201d. Jego opis mo\u017cna znale\u017a\u0107 zar\u00f3wno w Internecie, jak i na <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/346066\/\">Habrze<\/a><\/noindex>.<\/p>\n<p>Za\u0142\u00f3\u017cmy, \u017ce nad dokumentacj\u0105 pracuje cztery osoby i ty jeste\u015b jedn\u0105 z nich. Wtedy tworzone s\u0105 cztery dodatkowe ga\u0142\u0119zie (branch), na przyk\u0142ad z imionami tych os\u00f3b. Ka\u017cdy pracuje lokalnie, w swojej ga\u0142\u0119zi, i dokonuje zmian ze wszystkimi niezb\u0119dnymi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/joshnh\/Git-Commands\">komendami git<\/a><\/noindex>. <\/p>\n<p>Wykonuj\u0105c jaki\u015b zako\u0144czony fragment pracy, tworzysz pull request, inicjuj\u0105c w ten spos\u00f3b dyskusj\u0119 nad swoimi zmianami. Mo\u017cliwe, \u017ce w trakcie dyskusji wyjdzie na jaw, \u017ce musisz doda\u0107 lub zmieni\u0107 co\u015b jeszcze. W takim przypadku wprowadzasz niezb\u0119dne zmiany i tworzysz dodatkowy pull request. Ostatecznie twoje zmiany zostaj\u0105 zaakceptowane i scalone (merge) z ga\u0142\u0119zi\u0105 master (lub odrzucone).<\/p>\n<p>Oczywi\u015bcie, to do\u015b\u0107 og\u00f3lny opis. Proponuj\u0119 skontaktowa\u0107 si\u0119 z waszymi deweloperami lub znale\u017a\u0107 kompetentne osoby, aby stworzy\u0107 szczeg\u00f3\u0142owy proces. Ale chc\u0119 zauwa\u017cy\u0107, \u017ce pr\u00f3g wej\u015bcia do Gita jest do\u015b\u0107 niski. To nie oznacza, \u017ce protok\u00f3\u0142 jest prosty, ale mo\u017cesz zacz\u0105\u0107 od podstaw. Je\u015bli zupe\u0142nie nic nie wiesz, my\u015bl\u0119, \u017ce po\u015bwi\u0119caj\u0105c kilka godzin lub mo\u017ce dni na nauk\u0119 i konfiguracj\u0119, mo\u017cesz zacz\u0105\u0107 go u\u017cywa\u0107.<\/p>\n<p>Jaka jest korzy\u015b\u0107 z tego podej\u015bcia w por\u00f3wnaniu, na przyk\u0142ad, do procesu opisanego w powy\u017cszym przyk\u0142adzie?<\/p>\n<p>W rzeczywisto\u015bci procesy s\u0105 do\u015b\u0107 podobne, po prostu zast\u0105pi\u0142e\u015b<\/p>\n<p>kopiowanie pliku -&gt; tworzenie ga\u0142\u0119zi (branch)<br \/>\nkopiowanie tekstu do ko\u0144cowego pliku -&gt; scalanie (merge)<br \/>\nkopiowanie ostatnich zmian do siebie -&gt; git pull\/fetch<br \/>\ndyskusja w korespondencji -&gt; pull requests<br \/>\ntryb \u015bledzenia -&gt; git diff<br \/>\nostatnia zatwierdzona wersja -&gt; ga\u0142\u0105\u017a master<br \/>\nkopiowanie na zdalny serwer -&gt; git push<br \/>\n\u2026<\/p>\n<p>W ten spos\u00f3b zautomatyzowa\u0142e\u015b wszystko, co musia\u0142e\u015b robi\u0107 r\u0119cznie.<\/p>\n<p>Na wy\u017cszym poziomie pozwala ci to <\/p>\n<ul>\n<li>stworzy\u0107 jasny, prosty i kontrolowany proces zmian w dokumentacji<\/li>\n<li>poniewa\u017c ko\u0144cowy dokument (w naszym przyk\u0142adzie MS Word) tworzysz automatycznie, co zmniejsza prawdopodobie\u0144stwo b\u0142\u0119d\u00f3w zwi\u0105zanych z formatowaniem<\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p><b>Uwagi<\/b><\/p>\n<p>W zwi\u0105zku z powy\u017cszym, my\u015bl\u0119, \u017ce oczywiste jest, \u017ce nawet je\u015bli pracujesz nad dokumentacj\u0105 sam, to korzystanie z Gita mo\u017ce znacznie u\u0142atwi\u0107 twoj\u0105 prac\u0119.<\/p><\/blockquote>\n<p>\nWszystko to podnosi jako\u015b\u0107 dokumentacji i skraca czas jej tworzenia. I jeszcze ma\u0142y bonus \u2014 nauczysz si\u0119 Gita, co pomo\u017ce ci w automatyzacji twojej sieci \ud83d\ude42<\/p>\n<h3>Jak przej\u015b\u0107 na nowy proces?<\/h3>\n<p>\nNa pocz\u0105tku artyku\u0142u napisa\u0142em, \u017ce ju\u017c jutro mo\u017cesz zacz\u0105\u0107 pracowa\u0107 w nowy spos\u00f3b. Jak przekonwertowa\u0107 swoj\u0105 prac\u0119 na nowy tor?<\/p>\n<p>Oto sekwencja krok\u00f3w, kt\u00f3re prawdopodobnie b\u0119dziesz musia\u0142 wykona\u0107:<\/p>\n<ul>\n<li>je\u015bli tw\u00f3j dokument jest bardzo du\u017cy, podziel go na cz\u0119\u015bci<\/li>\n<li>przekszta\u0142\u0107 ka\u017cd\u0105 cz\u0119\u015b\u0107 do Markdown (na przyk\u0142ad za pomoc\u0105 Pandoc)<\/li>\n<li>zainstaluj jeden z edytor\u00f3w Markdown (u\u017cywam <noindex><a rel=\"nofollow\" href=\"https:\/\/typora.io\">Typora<\/a><\/noindex>)<\/li>\n<li>prawdopodobnie b\u0119dziesz musia\u0142 poprawi\u0107 formatowanie utworzonych dokument\u00f3w Markdown<\/li>\n<li>zacznij stosowa\u0107 proces opisany w poprzednim rozdziale<\/li>\n<li>jednocze\u015bnie zacznij modyfikowa\u0107 skrypt konwersji pod swoje zadanie (lub stw\u00f3rz co\u015b swojego) <\/li>\n<\/ul>\n<p>\nNie musisz czeka\u0107, a\u017c stworzysz i doskonale poprawisz mechanizm konwersji Markdown -&gt; wymagany na wyj\u015bciu format dokumentu. Chodzi o to, \u017ce nawet je\u015bli nie uda ci si\u0119 szybko w pe\u0142ni zautomatyzowa\u0107 procedury przekszta\u0142cania twoich plik\u00f3w Markdown, i tak b\u0119dziesz m\u00f3g\u0142 to zrobi\u0107 w pewnej formie za pomoc\u0105 Pandoc, a nast\u0119pnie doprowadzi\u0107 do ostatecznej formy r\u0119cznie. Zwykle nie musisz tego cz\u0119sto robi\u0107, a tylko na ko\u0144cu niekt\u00f3rych etap\u00f3w, i ta praca r\u0119czna, chocia\u017c niewygodna, jest moim zdaniem do zaakceptowania na etapie debugowania i nie powinna znacznie \u201espowalnia\u0107\u201d procesu. <\/p>\n<p>Wszystko inne (Markdown, Git, Pandoc, Typora) jest ju\u017c gotowe i nie wymaga szczeg\u00f3lnych wysi\u0142k\u00f3w ani czasu, aby zacz\u0105\u0107 z nimi pracowa\u0107.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/456410\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f, \u043d\u043e \u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u043d\u0435\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043b\u044c\u0432\u0438\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043e\u0448\u0438\u0431\u043a\u0430\u043c \u0438 \u0434\u0430\u0436\u0435 \u043a \u043f\u043e\u0442\u0435\u0440\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0430, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0438 \u043a \u043f\u043e\u0442\u0435\u0440\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0432\u044b\u0433\u043e\u0434\u044b. \u041d\u043e \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u044d\u0442\u0430 \u0442\u0435\u043c\u0430 \u0438 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439 [&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":[688],"tags":[],"class_list":["post-35419","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0418\u043d\u043e\u0433\u0434\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f, \u043d\u043e \u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u043d\u0435\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u043c.\" \/>\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\/administrirovanie\/ispolzujte-git-pri-dokumentirovanii\" \/>\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\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 GIT \u043f\u0440\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418\u043d\u043e\u0433\u0434\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f, \u043d\u043e \u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u043d\u0435\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/ispolzujte-git-pri-dokumentirovanii\" \/>\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=\"2019-10-31T19:04:14+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:04:14+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\udd47U\u017cyj GIT do dokumentowania | ProHoster","description":"Czasami nie tylko sama dokumentacja, ale i proces pracy nad ni\u0105 mo\u017ce by\u0107 krytyczny.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/ispolzujte-git-pri-dokumentirovanii","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\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 GIT \u043f\u0440\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 | ProHoster","og:description":"\u0418\u043d\u043e\u0433\u0434\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f, \u043d\u043e \u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u043d\u0435\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u043c.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/ispolzujte-git-pri-dokumentirovanii","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":"2019-10-31T19:04:14+00:00","article:modified_time":"2019-10-31T19:04:14+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35419","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":"2026-01-21 23:10:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:03:21","updated":"2026-01-21 23:10:19","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\/35419","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=35419"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35419\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=35419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=35419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=35419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}