Spis treści
ToggleGit w skrócie
Git to rozproszony system kontroli wersji, który śledzi zmiany w plikach i pozwala wrócić do wcześniejszych wersji projektu. Zamiast trzymać foldery typu „projekt_final_v2″, masz jedną historię, w której każda zapisana zmiana ma swój opis i datę.
Codzienna praca z Gitem sprowadza się do kilku poleceń, które szybko wchodzą w nawyk. Dodajesz zmiany komendą git add, zapisujesz je przez git commit, a następnie wysyłasz na serwer komendą git push.
Git działa lokalnie na Twoim komputerze, a do współpracy używa się serwisów takich jak GitHub. Jeśli chcesz najpierw poznać samą platformę, pomocny jest wpis o tym, czym jest GitHub i jak zacząć.
Czym jest Git i kontrola wersji
Kontrola wersji to sposób zapisywania kolejnych stanów projektu, dzięki któremu w każdej chwili możesz cofnąć się do wcześniejszej wersji. Git jest dziś najpopularniejszym takim systemem i stworzył go Linus Torvalds w 2005 roku na potrzeby rozwoju jądra Linux.
Repozytorium Git to katalog projektu z ukrytym folderem .git, w którym przechowywana jest cała historia zmian. To właśnie ten folder sprawia, że zwykły katalog staje się repozytorium śledzonym przez Git.
Określenie „rozproszony” oznacza, że każdy, kto pobierze projekt, ma u siebie pełną kopię historii, a nie tylko bieżący stan. Dzięki temu możesz pracować i zapisywać zmiany lokalnie, nawet bez połączenia z serwerem, a synchronizować się dopiero później.
Konfiguracja i rozpoczęcie pracy
Przed pierwszym commitem ustawia się tożsamość, a nową pracę zaczyna od git init lub git clone. Konfigurację robi się raz, a Git zapamiętuje ją dla wszystkich projektów na danym komputerze.
- Ustaw imię i adres e-mail. Wpisz
git config --global user.name "Imię"orazgit config --global user.email "mail@example.pl", żeby commity były podpisane. - Załóż nowe repozytorium. W katalogu projektu uruchom
git init– Git utworzy folder.giti zacznie śledzić zmiany. - Albo pobierz istniejące. Komendą
git clone <adres>skopiujesz cały projekt z serwera wraz z historią. - Sprawdź stan. Uruchom
git status, żeby zobaczyć, które pliki są nowe, zmienione lub gotowe do zapisu.
Pracę z Gitem prowadzisz w terminalu, więc warto znać podstawy poruszania się po wierszu poleceń. Jeśli to dla Ciebie nowość, przyda się wpis o tym, czym jest terminal i jakie są podstawowe komendy.
Najważniejsze komendy Git
Większość codziennej pracy obsługuje kilkanaście komend, które warto mieć pod ręką. Poniższa tabela zbiera te, od których zaczyna każdy, kto uczy się Gita.
| Komenda | Co robi |
|---|---|
git init |
Tworzy nowe, puste repozytorium w bieżącym katalogu |
git clone |
Pobiera istniejące repozytorium wraz z historią |
git status |
Pokazuje zmienione, dodane i nieśledzone pliki |
git add |
Dodaje zmiany do poczekalni (staging area) |
git commit |
Zapisuje zmiany z poczekalni w historii |
git log |
Wyświetla historię commitów |
git diff |
Pokazuje różnice między wersjami plików |
git push |
Wysyła lokalne commity do zdalnego repozytorium |
git pull |
Pobiera i scala zmiany ze zdalnego repozytorium |
Nie musisz uczyć się ich wszystkich naraz. W praktyce najczęściej używasz git status, git add, git commit i git push, a resztę dokładasz w miarę potrzeb.
Praca z commitami
Zapisanie zmian w Git to dwa kroki: najpierw git add, potem git commit. Ten podział pozwala wybrać, które dokładnie zmiany trafią do danego zapisu, a które jeszcze nie.
Komenda git add dodaje zmiany do poczekalni (staging area), na przykład git add . dodaje wszystkie zmiany w katalogu. Poczekalnia to pośredni etap między zmianami w plikach a zapisanym commitem – coś w rodzaju koszyka, do którego wkładasz to, co chcesz zapisać.
Następnie git commit -m "opis" zapisuje zawartość poczekalni w historii wraz z krótkim opisem. Dobre opisy commitów są konkretne, na przykład „dodaj walidację formularza kontaktowego”, bo po miesiącach to one pozwalają zrozumieć, co i po co się zmieniło.
Gałęzie i scalanie
Gałęzie (branch) pozwalają rozwijać nowe funkcje w izolacji, bez wpływu na główną wersję projektu. Główną gałąź nazywa się najczęściej main lub master, a obok niej tworzy się osobne gałęzie na poszczególne zadania.
Gałęziami zarządza komenda git branch, a między nimi przełączasz się przez git checkout lub nowsze git switch. Dzięki temu możesz pracować nad nową funkcją na osobnej gałęzi i w każdej chwili wrócić do stabilnej wersji.
Gdy funkcja jest gotowa, git merge scala zmiany z jednej gałęzi do drugiej. Czasem pojawia się konflikt scalania, gdy ten sam fragment pliku zmieniono w dwóch miejscach – wtedy trzeba ręcznie wskazać, którą wersję zostawić.
Praca ze zdalnym repozytorium
Zdalne repozytorium to kopia projektu na serwerze, z którą synchronizujesz swoją pracę. Najczęściej trzyma się je w serwisach takich jak GitHub, GitLab czy Bitbucket, co ułatwia współpracę w zespole i tworzy kopię zapasową kodu.
Komenda git push wysyła lokalne commity do zdalnego repozytorium, a git pull pobiera i od razu scala zmiany, które wprowadzili inni. Warto robić git pull przed rozpoczęciem pracy, żeby zacząć od aktualnej wersji.
Istnieje też git fetch, które pobiera zmiany ze zdalnego repozytorium bez ich scalania – w odróżnieniu od git pull, które łączy te kroki. Dla wielu projektów Git zastępuje wgrywanie plików przez serwer FTP, bo zamiast kopiować pliki ręcznie, wdrażasz konkretną, zatwierdzoną wersję kodu.
Cofanie zmian i częste sytuacje
Git daje kilka sposobów cofania zmian, w zależności od tego, czy zostały już zapisane w commicie. Dzięki temu pomyłka rzadko jest nieodwracalna, o ile pracujesz w repozytorium.
Niezapisane zmiany w pliku cofniesz komendą git restore (lub starszym git checkout), wracając do stanu z ostatniego commita. Jeśli chcesz odwrócić już zapisaną zmianę, git revert tworzy nowy commit cofający jej skutki, a git reset przesuwa wskaźnik na wcześniejszy commit.
Przydaje się też plik .gitignore, w którym wpisujesz wzorce plików i katalogów, których Git ma nie śledzić, na przykład node_modules. Gdy musisz nagle przełączyć się na inne zadanie, git stash chwilowo odkłada niezapisane zmiany, żeby wrócić do czystego stanu i przywrócić je później. Tę samą logikę wiersza poleceń wykorzystują też narzędzia jak WP-CLI do zarządzania WordPressem.
Najczęściej zadawane pytania
Co to jest Git?
Git to rozproszony system kontroli wersji, który śledzi zmiany w plikach i pozwala wrócić do wcześniejszych wersji projektu. Stworzył go Linus Torvalds w 2005 roku na potrzeby rozwoju jądra Linux.
Każda kopia projektu zawiera pełną historię zmian, dlatego możesz pracować i zapisywać commity lokalnie, nawet bez połączenia z serwerem.
Czym różni się Git od GitHub?
Git to program do kontroli wersji działający lokalnie, a GitHub to serwis do przechowywania repozytoriów Git w chmurze. Git możesz używać bez GitHuba.
GitHub dodaje współpracę: hosting repozytoriów, przeglądanie kodu i zgłaszanie zmian. Podobne usługi oferują też GitLab i Bitbucket.
Jak zacząć pracę z Git?
Najpierw ustaw tożsamość komendami git config --global user.name i git config --global user.email, a potem utwórz repozytorium przez git init. Możesz też pobrać gotowe repozytorium komendą git clone.
Następnie pracujesz w pętli: zmieniasz pliki, dodajesz je przez git add, zapisujesz przez git commit i wysyłasz przez git push.
Co robi git commit?
Komenda git commit zapisuje zmiany z poczekalni w historii repozytorium wraz z opisem. Używa się jej w formie git commit -m "opis".
Wcześniej trzeba dodać zmiany do poczekalni przez git add. Commit to trwały punkt w historii, do którego można wrócić.
Jak cofnąć ostatni commit?
Najbezpieczniej użyć git revert, które tworzy nowy commit odwracający wcześniejsze zmiany. Historia zostaje nienaruszona, więc to dobra metoda we wspólnych repozytoriach.
Alternatywą jest git reset, które przesuwa wskaźnik na wcześniejszy commit. Trzeba jednak uważać, bo może usunąć zmiany, zwłaszcza gdy commity zostały już wysłane na serwer.
Co to jest gałąź (branch) w Git?
Gałąź to równoległa wersja projektu, w której rozwijasz zmiany bez wpływu na główną gałąź. Główną nazywa się zwykle main lub master.
Gałęziami zarządza git branch, a przełączasz się między nimi przez git switch lub git checkout. Gotowe zmiany scalasz komendą git merge.
Czym różni się git pull od git fetch?
git fetch pobiera zmiany ze zdalnego repozytorium bez ich scalania, a git pull pobiera je i od razu scala z Twoją gałęzią. Pull łączy więc dwa kroki w jeden.
git fetch jest bezpieczniejszy, gdy chcesz najpierw zobaczyć, co się zmieniło, zanim zdecydujesz o scaleniu.






