{"id":520,"date":"2026-05-13T15:54:10","date_gmt":"2026-05-13T15:54:10","guid":{"rendered":"https:\/\/piotrswitlicki.pl\/?p=520"},"modified":"2026-05-13T15:59:12","modified_gmt":"2026-05-13T15:59:12","slug":"1-co-to-jest-git","status":"publish","type":"post","link":"https:\/\/piotrswitlicki.pl\/pl\/2026\/05\/13\/1-co-to-jest-git\/","title":{"rendered":"Podstawy Gita i r\u00f3\u017cnice mi\u0119dzy GitHubem a GitLabem"},"content":{"rendered":"W wi\u0119kszo\u015bci wsp\u00f3\u0142czesnych projekt\u00f3w programistycznych Git jest standardowym narz\u0119dziem pracy. Nawet przy mniejszych aplikacjach trudno dzi\u015b wyobrazi\u0107 sobie rozw\u00f3j oprogramowania bez kontroli wersji, branchy czy wsp\u00f3\u0142pracy zespo\u0142owej.<br>Do tej pory mia\u0142em okazj\u0119 korzysta\u0107 g\u0142\u00f3wnie z podstawowych operacji Gitowych w codziennej pracy developerskiej, dlatego postanowi\u0142em uporz\u0105dkowa\u0107 wiedz\u0119 i lepiej zrozumie\u0107 ca\u0142y workflow pracy z repozytorium.<br>Czym w\u0142a\u015bciwie jest Git?<br>Git to rozproszony system kontroli wersji.<br>Pozwala \u015bledzi\u0107 zmiany w kodzie, wraca\u0107 do wcze\u015bniejszych wersji projektu oraz pracowa\u0107 zespo\u0142owo nad jedn\u0105 aplikacj\u0105.<br>Najwi\u0119ksz\u0105 zalet\u0105 Gita jest mo\u017cliwo\u015b\u0107 bezpiecznego rozwijania projektu bez ryzyka utraty wcze\u015bniejszych zmian.<br>Typowy workflow wygl\u0105da mniej wi\u0119cej tak:<br>pobranie projektu,<br>stworzenie osobnego brancha,<br>wprowadzenie zmian,<br>commit zmian,<br>wys\u0142anie kodu do repozytorium,<br>code review i merge.<br><br>Najcz\u0119\u015bciej u\u017cywane komendy Git<br>Inicjalizacja repozytorium<br><br><code>git init<\/code><br><br>Tworzy nowe repozytorium Git w katalogu projektu.<br><br>Klonowanie istniej\u0105cego projektu<br><br><code>git clone https:\/\/adres-repozytorium.git<\/code><br><br>Pozwala pobra\u0107 projekt z serwera na komputer lokalny.<br><br>Sprawdzenie statusu zmian<br><br><code>git status<\/code><br><br>Jedna z najcz\u0119\u015bciej u\u017cywanych komend.<br>Pokazuje:<br>zmodyfikowane pliki,<br>nowe pliki,<br>pliki oczekuj\u0105ce na commit.<br><br>Dodawanie plik\u00f3w do commita<br><br><code>git add .<\/code><br><br>Dodaje wszystkie zmiany do tzw. staging area.<br>Mo\u017cna r\u00f3wnie\u017c doda\u0107 pojedynczy plik:<br><br><code>git add index.php<\/code><br><br><br>Tworzenie commita<br><br><code>git commit -m \"Dodano formularz logowania\"<\/code><br><br>Commit zapisuje aktualny stan zmian wraz z opisem.<br><br>Pobieranie zmian z repozytorium<br><br><code>git pull<\/code><br><br>Synchronizuje lokalne repozytorium z wersj\u0105 znajduj\u0105c\u0105 si\u0119 na serwerze.<br><br>Wysy\u0142anie zmian<br><br><code>git push<\/code><br><br>Publikuje lokalne commity w zdalnym repozytorium.<br><br>Branche i praca zespo\u0142owa<br>Jedn\u0105 z najwa\u017cniejszych funkcji Gita s\u0105 branche.<br>Branch pozwala pracowa\u0107 nad now\u0105 funkcjonalno\u015bci\u0105 bez ingerowania w g\u0142\u00f3wn\u0105 wersj\u0119 aplikacji.<br>Najcz\u0119\u015bciej spotykane branche:<br><code>main<\/code><br><code>develop<\/code><br><code>feature\/nazwa-funkcji<\/code><br><code>bugfix\/nazwa-poprawki<\/code><br>Tworzenie nowego brancha:<br><br><code>git checkout -b feature\/login<\/code><br><br>Dzi\u0119ki branchom kilka os\u00f3b mo\u017ce jednocze\u015bnie rozwija\u0107 r\u00f3\u017cne cz\u0119\u015bci projektu.<br><br>Pull Request i Code Review<br>W pracy zespo\u0142owej standardem jest korzystanie z:<br>Pull Request\u00f3w,<br>Merge Request\u00f3w,<br>Code Review.<br>Po zako\u0144czeniu pracy nad funkcjonalno\u015bci\u0105 developer wysy\u0142a zmiany do repozytorium i tworzy request o po\u0142\u0105czenie kodu z g\u0142\u00f3wn\u0105 ga\u0142\u0119zi\u0105 projektu.<br>Wtedy inny programista mo\u017ce:<br>przejrze\u0107 kod,<br>zg\u0142osi\u0107 poprawki,<br>zatwierdzi\u0107 merge.<br>To pomaga utrzyma\u0107 jako\u015b\u0107 projektu i ograniczy\u0107 liczb\u0119 b\u0142\u0119d\u00f3w.<br><br>GitHub a GitLab \u2014 najwa\u017cniejsze r\u00f3\u017cnice<br>Najcz\u0119\u015bciej Git jest u\u017cywany razem z platformami takimi jak:<br>GitHub<br>GitLab<br>Obie platformy s\u0142u\u017c\u0105 do hostowania repozytori\u00f3w Git i wspieraj\u0105 wsp\u00f3\u0142prac\u0119 zespo\u0142ow\u0105, jednak r\u00f3\u017cni\u0105 si\u0119 podej\u015bciem i dodatkowymi funkcjami.<br>GitHub<br>GitHub jest najpopularniejsz\u0105 platform\u0105 Gitow\u0105 na \u015bwiecie.<br>Bardzo mocno kojarzy si\u0119 z projektami open source oraz spo\u0142eczno\u015bci\u0105 programist\u00f3w.<br>Najwa\u017cniejsze cechy:<br>prosty i przejrzysty interfejs,<br>ogromna spo\u0142eczno\u015b\u0107,<br>popularno\u015b\u0107 w projektach open source,<br>integracje z wieloma narz\u0119dziami.<br><br>GitLab<br>GitLab jest bardziej rozbudowany pod k\u0105tem DevOps i proces\u00f3w CI\/CD.<br>Cz\u0119sto wybieraj\u0105 go firmy rozwijaj\u0105ce wi\u0119ksze systemy wewn\u0119trzne lub korzystaj\u0105ce z w\u0142asnej infrastruktury.<br>Najwa\u017cniejsze funkcje:<br>wbudowane pipeline\u2019y CI\/CD,<br>integracje deploymentowe,<br>mo\u017cliwo\u015b\u0107 self-hostingu,<br>rozbudowane zarz\u0105dzanie projektami.<br><br>Git w codziennej pracy developera<br>Nawet podstawowa znajomo\u015b\u0107 Gita jest dzi\u015b praktycznie obowi\u0105zkowa w pracy programisty.<br>Najcz\u0119\u015bciej wykorzystywane elementy to:<br>commitowanie zmian,<br>praca na branchach,<br>pull\/push,<br>rozwi\u0105zywanie konflikt\u00f3w,<br>code review,<br>wsp\u00f3\u0142praca przez Pull Requesty lub Merge Requesty.<br>Git bardzo usprawnia prac\u0119 zespo\u0142ow\u0105 i pozwala bezpiecznie rozwija\u0107 aplikacje niezale\u017cnie od ich wielko\u015bci.","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-520","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"acf":[],"_links":{"self":[{"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/posts\/520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/comments?post=520"}],"version-history":[{"count":3,"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/posts\/520\/revisions"}],"predecessor-version":[{"id":525,"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/posts\/520\/revisions\/525"}],"wp:attachment":[{"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/media?parent=520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/categories?post=520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/tags?post=520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}