Strona główna  /  Narzędzia  /  Git – jak używać tego systemu kontroli wersji?

✦ AI
Nowoczesne stanowisko pracy z klawiaturą i monitorem wyświetlającym kod oraz diagramy gałęzi systemu Git.

Git – jak używać tego systemu kontroli wersji?

Narzędzia

Git to lokalny, rozproszony system kontroli wersji. Śledzi zmiany w plikach, zapisuje kolejne migawki projektu i pozwala bezpiecznie wracać do wcześniejszych wersji. Podstawowy cykl pracy wygląda tak: modyfikujesz pliki, dodajesz wybrane zmiany do przechowalni, tworzysz commit, a następnie opcjonalnie wysyłasz go do zdalnego repozytorium.

Czym jest Git i jak działa?

Git przechowuje historię projektu w repozytorium. Większość operacji wykonuje lokalnie, więc możesz przeglądać historię, tworzyć commity i pracować nad plikami bez połączenia z internetem. Synchronizacja z serwerem jest potrzebna dopiero wtedy, gdy chcesz pobrać zmiany innych osób albo wysłać własne.

Git zapisuje stan projektu jako migawki, a nie wyłącznie jako listę różnic między plikami. Commit opisuje więc konkretny stan projektu w danym momencie. Dzięki temu łatwiej porównywać wersje, odtwarzać wcześniejsze stany i analizować historię.

Nie należy mylić Gita z GitHubem ani GitLabem. Git jest narzędziem działającym na komputerze. GitHub i GitLab to platformy, na których można przechowywać zdalne repozytoria, współpracować nad kodem i przeglądać zmiany przez przeglądarkę.

Trzy stany plików w Git

Najważniejszy model pracy z Gitem obejmuje katalog roboczy, staging area oraz repozytorium. Zrozumienie tej kolejności wyjaśnia, dlaczego samo zapisanie pliku nie wystarcza do utworzenia commita.

  • Katalog roboczy – znajdują się w nim pliki, które otwierasz i edytujesz.
  • Staging area – przechowalnia, nazywana też indeksem, zawiera zmiany przygotowane do najbliższego commita.
  • Repozytorium – lokalna baza danych Gita, w której trwale zapisane są commity i historia projektu.

Po zmianie pliku Git widzi go jako zmodyfikowany. Polecenie git add kopiuje aktualny stan wybranego pliku do staging area. Dopiero git commit zapisuje zawartość przechowalni jako nową migawkę w repozytorium. Możesz więc przygotować do jednego commita tylko część zmian, nawet jeśli w katalogu roboczym zmodyfikowano więcej plików.

Jak zacząć pracę z Gitem?

Najpierw sprawdź, czy Git jest już dostępny w systemie. Jeśli go nie ma, zainstaluj go z użyciem instalatora właściwego dla Windows, macOS albo swojej dystrybucji Linuksa. Następnie wykonaj konfigurację:

  1. Sprawdź instalację poleceniem git --version.
  2. Ustaw nazwę autora commitów: git config --global user.name "Imię Nazwisko".
  3. Ustaw adres e-mail: git config --global user.email "[email protected]".
  4. Wyświetl konfigurację poleceniem git config --list.

Nowe repozytorium możesz utworzyć w istniejącym katalogu:

cd nazwa-projektu
git init

Polecenie git init tworzy ukryty katalog .git z metadanymi i bazą historii. Nie modyfikuje pozostałych plików. Jeśli projekt już istnieje na serwerze, pobierz jego lokalną kopię za pomocą:

git clone https://example.com/projekt.git

Klonowanie tworzy lokalne repozytorium wraz z historią i kopią roboczą projektu.

Codzienny workflow w Git

Typowy cykl pracy zaczyna się od edycji plików i kończy na wysłaniu commita do zdalnego repozytorium. Przed każdą operacją dobrze sprawdzić bieżący stan:

Komenda Działanie
git status Pokazuje zmodyfikowane, nowe i przygotowane pliki.
git add plik.txt Dodaje wskazany plik do staging area.
git add . Dodaje zmiany z bieżącego katalogu do przechowalni.
git commit -m "Opis" Zapisuje przygotowane zmiany jako commit.
git push origin main Wysyła lokalne commity do zdalnego repozytorium.
git pull Pobiera zmiany ze zdalnego repozytorium i integruje je z bieżącą gałęzią.
git log Wyświetla historię commitów.

W praktyce podstawowy przebieg może wyglądać tak:

git status
git add README.md
git commit -m "Aktualizacja dokumentacji"
git push origin main

Przed pierwszym commitem sprawdź następujące rzeczy:

  • Czy pracujesz w właściwym repozytorium i na właściwej gałęzi.
  • Czy git status pokazuje pliki, które chcesz zapisać.
  • Czy wszystkie wymagane zmiany trafiły do staging area.
  • Czy opis commita jasno mówi, co zostało zmienione.

Commit zapisuje zmiany lokalnie. Dopiero git push przesyła je na serwer, a git pull pobiera zmiany przygotowane przez innych. To rozdzielenie pozwala pracować offline i decydować, kiedy synchronizować projekt.

Jak pracować z gałęziami?

Gałąź izoluje zmiany od głównej linii projektu. Przy nowej funkcji, poprawce błędu albo eksperymencie możesz utworzyć osobną gałąź, nie modyfikując bezpośrednio main.

git switch -c nazwa-funkcji

Polecenie tworzy gałąź i od razu na nią przełącza. Listę gałęzi wyświetlisz przez git branch, a powrót do głównej gałęzi wykonasz tak:

git switch main

Po zakończeniu pracy możesz scalić zmiany z bieżącą gałęzią:

git merge nazwa-funkcji

Jeśli ten sam fragment pliku został zmieniony w obu gałęziach, Git zgłosi konflikt. Trzeba wtedy ręcznie wybrać właściwą wersję, zapisać plik, dodać go do staging area i zakończyć scalanie commitem. W zespołach merge często poprzedza przegląd kodu za pomocą pull requestu lub merge requestu.

Co zrobić, gdy coś pójdzie nie tak?

„fatal: not a git repository” oznacza, że terminal nie znajduje repozytorium w bieżącym katalogu. Przejdź do właściwego folderu poleceniem cd albo zainicjalizuj nowe repozytorium przez git init.

„Authentication failed” przy git push wskazuje na problem z dostępem do zdalnego repozytorium. Sprawdź adres za pomocą git remote -v oraz sposób uwierzytelniania. Platformy takie jak GitHub mogą wymagać tokenu dostępu przy HTTPS albo konfiguracji klucza SSH. Klucz prywatny SSH powinien pozostać wyłącznie na Twoim urządzeniu.

Jeśli po commicie zauważysz, że zabrakło jednego pliku, a commit nie został jeszcze wysłany, możesz go poprawić:

git add brakujacy-plik.txt
git commit --amend --no-edit

Nie poprawiaj w ten sposób commita, który został już udostępniony innym osobom przez git push. Zmiana historii może utrudnić synchronizację pozostałym użytkownikom.

Git najlepiej opanować przez powtarzanie prostego cyklu: status, add, commit, a po sprawdzeniu zmian także push. Najważniejsze jest rozróżnienie między plikami roboczymi, staging area i lokalnym repozytorium. Gdy ten model jest jasny, kolejne komendy służą już głównie do porządkowania historii i współpracy z zespołem.

Redakcja majsterkowicza.pl

Fani nowoczesnego budownictwa. Radzimy jak zrobić szybki remont w domu lub mieszkaniu oraz jak posługiwać się podstawowymi narzędziami.

Może Cię również zainteresować

Potrzebujesz więcej informacji?