{"id":526,"date":"2026-05-14T15:53:07","date_gmt":"2026-05-14T15:53:07","guid":{"rendered":"https:\/\/piotrswitlicki.pl\/?p=526"},"modified":"2026-05-14T15:53:26","modified_gmt":"2026-05-14T15:53:26","slug":"git-podstawowe-komendy-i-workflow-pracy-zespolowej","status":"publish","type":"post","link":"https:\/\/piotrswitlicki.pl\/pl\/2026\/05\/14\/git-podstawowe-komendy-i-workflow-pracy-zespolowej\/","title":{"rendered":"Git \u2014 podstawowe komendy i workflow pracy zespo\u0142owej"},"content":{"rendered":"<br>Git jest dzi\u015b standardem praktycznie w ka\u017cdym projekcie programistycznym.<br>Niezale\u017cnie od tego, czy aplikacja jest tworzona przez jedn\u0105 osob\u0119 czy przez du\u017cy zesp\u00f3\u0142, Git pozwala kontrolowa\u0107 zmiany w kodzie i bezpiecznie rozwija\u0107 projekt.<br>Najwi\u0119ksz\u0105 zalet\u0105 Gita jest mo\u017cliwo\u015b\u0107:<br>\u015bledzenia historii zmian,<br>pracy na wielu branchach,<br>wsp\u00f3\u0142pracy kilku developer\u00f3w jednocze\u015bnie,<br>cofania b\u0142\u0119d\u00f3w,<br>prowadzenia code review.<br><br>Inicjalizacja repozytorium<br>Utworzenie repozytorium Git<br><br><code>git init<\/code><br><br>Tworzy nowe repozytorium Git w aktualnym katalogu projektu.<br><br>Pobieranie projektu<br>Klonowanie repozytorium<br><br><code>git clone https:\/\/adres-repozytorium.git<\/code><br><br>Pobiera projekt z serwera na komputer lokalny.<br><br>Sprawdzanie zmian<br>Status repozytorium<br><br><code>git status<\/code><br><br>Pokazuje:<br>zmodyfikowane pliki,<br>nowe pliki,<br>pliki oczekuj\u0105ce na commit,<br>aktualny branch.<br><br>Historia commit\u00f3w<br><br><code>git log<\/code><br><br>Wy\u015bwietla histori\u0119 commit\u00f3w projektu.<br>Bardziej skr\u00f3cona wersja:<br><br><code>git log --oneline<\/code><br><br><br>Dodawanie zmian<br>Dodanie wszystkich plik\u00f3w<br><br><code>git add .<\/code><br><br>Dodaje wszystkie zmodyfikowane pliki do staging area.<br><br>Dodanie pojedynczego pliku<br><br><code>git add index.php<\/code><br><br><br>Commity<br>Utworzenie commita<br><br><code>git commit -m \"Dodano logowanie u\u017cytkownika\"<\/code><br><br>Commit zapisuje aktualny stan zmian wraz z opisem.<br><br>Poprawienie ostatniego commita<br><br><code>git commit --amend<\/code><br><br>Pozwala zmieni\u0107 opis lub doda\u0107 brakuj\u0105ce pliki do ostatniego commita.<br><br>Branche<br>Branch pozwala pracowa\u0107 nad funkcjonalno\u015bci\u0105 niezale\u017cnie od g\u0142\u00f3wnej wersji projektu.<br><br>Lista branchy<br><br><code>git branch<\/code><br><br><br>Utworzenie nowego brancha<br><br><code>git branch feature\/login<\/code><br><br><br>Prze\u0142\u0105czenie brancha<br><br><code>git checkout feature\/login<\/code><br><br><br>Utworzenie i prze\u0142\u0105czenie brancha jednocze\u015bnie<br><br><code>git checkout -b feature\/login<\/code><br><br><br>Usuni\u0119cie brancha<br><br><code>git branch -d feature\/login<\/code><br><br><br>Synchronizacja z repozytorium<br>Pobranie zmian<br><br><code>git pull<\/code><br><br>Pobiera i scala najnowsze zmiany z repozytorium.<br><br>Wys\u0142anie zmian<br><br><code>git push<\/code><br><br>Publikuje commity na serwerze.<br><br>Pierwszy push brancha<br><br><code>git push -u origin feature\/login<\/code><br><br>Tworzy branch na zdalnym repozytorium i ustawia tracking.<br><br>Merge i \u0142\u0105czenie branchy<br>Po\u0142\u0105czenie branchy<br><br><code>git merge feature\/login<\/code><br><br>\u0141\u0105czy branch <code>feature\/login<\/code> z aktualnym branchem.<br>Najcz\u0119\u015bciej workflow wygl\u0105da tak:<br>przej\u015bcie na <code>main<\/code>,<br>merge feature brancha,<br>push zmian.<br>Przyk\u0142ad:<br><br><code>git checkout main<br>git merge feature\/login<br>git push<\/code><br><br><br>Konflikty merge<br>Konflikty pojawiaj\u0105 si\u0119 wtedy, gdy dwie osoby zmodyfikuj\u0105 ten sam fragment kodu.<br>Git oznacza konflikt w pliku:<br><br><code>&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD<br>stary kod<br>=======<br>nowy kod<br>>>>>>>> feature\/login<\/code><br><br>Po r\u0119cznym rozwi\u0105zaniu konfliktu nale\u017cy:<br><br><code>git add .<br>git commit<\/code><br><br><br>Cofanie zmian<br>Cofni\u0119cie zmian przed commitem<br><br><code>git checkout -- index.php<\/code><br><br>Przywraca ostatni\u0105 wersj\u0119 pliku.<br><br>Usuni\u0119cie pliku ze staging area<br><br><code>git reset index.php<\/code><br><br><br>Cofni\u0119cie ostatniego commita<br><br><code>git reset --soft HEAD~1<\/code><br><br>Usuwa commit, ale pozostawia zmiany w plikach.<br><br>Twardy reset<br><br><code>git reset --hard HEAD~1<\/code><br><br>Usuwa commit oraz wszystkie zmiany.<br><br>Pobieranie bez merge<br>Fetch<br><br><code>git fetch<\/code><br><br>Pobiera zmiany z repozytorium bez automatycznego mergowania.<br><br>Rebase<br>Rebase brancha<br><br><code>git rebase main<\/code><br><br>Przenosi commity aktualnego brancha na najnowsz\u0105 wersj\u0119 <code>main<\/code>.<br>Rebase pomaga utrzyma\u0107 czystsz\u0105 histori\u0119 commit\u00f3w.<br><br>Stash<br>Przydatne, gdy trzeba chwilowo schowa\u0107 zmiany.<br>Zapisanie zmian<br><br><code>git stash<\/code><br><br><br>Przywr\u00f3cenie zmian<br><br><code>git stash pop<\/code><br><br><br>Remote<br>Lista zdalnych repozytori\u00f3w<br><br><code>git remote -v<\/code><br><br><br>Dodanie zdalnego repozytorium<br><br><code>git remote add origin https:\/\/adres-repo.git<\/code><br><br><br>Typowy workflow pracy zespo\u0142owej<br>Najcz\u0119\u015bciej praca wygl\u0105da mniej wi\u0119cej tak:<br><br><code>git pull<br>git checkout -b feature\/new-task<br><br># praca nad kodem<br><br>git add .<br>git commit -m \"Dodano now\u0105 funkcjonalno\u015b\u0107\"<br><br>git push -u origin feature\/new-task<\/code><br><br>Nast\u0119pnie tworzony jest:<br>Pull Request w GitHub<br>lub<br>Merge Request w GitLab.<br>Po code review branch jest mergowany do g\u0142\u00f3wnej ga\u0142\u0119zi projektu.<br><br>GitHub vs GitLab<br>GitHub<br>Najpopularniejsza platforma do hostowania repozytori\u00f3w Git.<br>Najcz\u0119\u015bciej kojarzona z:<br>open source,<br>prostym workflow,<br>du\u017c\u0105 spo\u0142eczno\u015bci\u0105 developer\u00f3w.<br><br>GitLab<br>Bardziej rozbudowane \u015brodowisko DevOps.<br>Popularne funkcje:<br>CI\/CD,<br>pipeline\u2019y,<br>deployment,<br>self-hosting,<br>integracje firmowe.<br><br>Podsumowanie<br>Najwa\u017cniejsze elementy codziennej pracy z Gitem:<br>branchowanie,<br>commitowanie zmian,<br>merge,<br>pull\/push,<br>rozwi\u0105zywanie konflikt\u00f3w,<br>code review,<br>Pull Requesty i Merge Requesty.<br>Nawet podstawowa znajomo\u015b\u0107 tych operacji pozwala sprawnie pracowa\u0107 w wi\u0119kszo\u015bci zespo\u0142\u00f3w developerskich.","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-526","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"acf":[],"_links":{"self":[{"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/posts\/526","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=526"}],"version-history":[{"count":1,"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/posts\/526\/revisions"}],"predecessor-version":[{"id":527,"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/posts\/526\/revisions\/527"}],"wp:attachment":[{"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/media?parent=526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/categories?post=526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/piotrswitlicki.pl\/pl\/wp-json\/wp\/v2\/tags?post=526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}