Git to jeden z najpopularniejszych systemów kontroli wersji na świecie. Jest używany przez programistów, administratorów systemów i zespoły IT do śledzenia zmian w kodzie i współpracy nad projektami. Dzięki niemu można tworzyć między innymi aplikacje internetowe i łatwo zarządzać w zespole historią plików, cofać zmiany i pracować nad różnymi funkcjami w niezależnych gałęziach.

Wielu początkujących myli Git z serwisami takimi jak GitHub, GitLab czy Bitbucket. Warto jednak pamiętać, że:

  • Git to system kontroli wersji działający lokalnie na komputerze użytkownika
  • GitHub, GitLab, Bitbucket to platformy hostujące repozytoria Git w chmurze, umożliwiające współpracę zespołową, pull requesty, automatyzację i zarządzanie kodem. Serwer również może być tak skonfigurowany, aby pełnił funkcję własnego repozytorium, do którego można push’ować zmiany i pull’ować je na innym urządzeniu.

Informujemy: W ramach usług hostingowych w zenbox.pl narzędzie Git jest dostępne domyślnie. Przeczytaj nasz poradnik Integracja z systemem kontroli wersji GIT w zenbox.pl jeśli nie wiesz jak zacząć.

Czym jest Git i jak działa?

Człowiek z laptopem na kolanach

Git to rozproszony system kontroli wersji (VCS – Version Control System), który pozwala śledzić zmiany w plikach, szczególnie w kodzie źródłowym, i zarządzać współpracą wielu programistów nad jednym projektem. Git jest rozproszony, co daje każdemu użytkownikowi możliwość posiadania pełnej kopii repozytorium na swoim komputerze. Dzięki temu można pracować offline, a dopiero później synchronizować zmiany ze zdalnym serwerem.

Git działa na zasadzie tworzenia tzw. repozytorium (repo), czyli miejsca, w którym przechowywane są pliki projektu oraz cała historia ich zmian.

Jak Git przechowuje zmiany?

Zamiast przechowywać pełne kopie plików po każdej zmianie, Git zapisuje tylko różnice (tzw. snapshoty).

Instalacja Git’a

Private detective empty workplace with crime case evidences board hanging over desk. Police investigator office surrounded with murder scene photos and clues at night time

Zanim przejdziesz do instalacji, warto sprawdzić, czy Git nie jest już dostępny na Twoim komputerze. Możesz to zrobić, otwierając terminal (lub wiersz poleceń) i wpisując:

git --version

Jeśli Git jest zainstalowany, zobaczysz informację o wersji, np.:

git version 2.41.0

Instalacja Gita na Windows

  1. Pobierz instalator Git’a ze strony https://git-scm.com/download/win
  2. Uruchom pobrany plik .exe.
  3. Podczas instalacji możesz zostawić domyślne ustawienia. Zaleca się jednak:
    „Use Git from the Windows Command Prompt” – pozwala używać Gita w Wierszu Poleceń.
    „Use Windows default console window” – pozostaw domyślną powłokę.
  4. Sprawdź czy Git działa wpisując w cmd:
git --version

Instalacja Git’a na macOS

Najłatwiejszym sposobem jest użycie menedżera pakietów Homebrew. Jeśli go nie masz, możesz zainstalować go wpisując w terminal:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Gdy zostanie wyświetlony poniższy komunikat wprowadź hasło do swojego Mac’a:

===> Checking for ’sudo’ access (which may request your password)…

Następnie podążaj za wyświetlanymi krokami w celu finalizacji instalacji.

Po zainstalowaniu Homebrew, wpisz w terminal poniższą komendę w celu instalacji Git’a:

brew install git

Następnie sprawdź czy został on prawidłowo zainstalowany:

git --version

Konfiguracja początkowa Gita

Po instalacji warto skonfigurować Git, ustawiając swoją nazwę użytkownika i adres e-mail. Są to dane, które będą przypisywane do commitów. Wpisz w terminalu:

git config --global user.name "Twoje Imię"
git config --global user.email "twoj@email.com"

Możesz sprawdzić swoją konfigurację:

git config --list

Podstawowe pojęcia w Git

Wykresy i konfiguracja na monitorze komputera

Git to potężne narzędzie do zarządzania kodem, ale aby skutecznie z niego korzystać, warto zrozumieć kilka kluczowych pojęć. Oto najważniejsze terminy, które pomogą Ci lepiej orientować się w pracy z systemem kontroli wersji Git.

Repozytorium

To miejsce, w którym Git przechowuje historię projektu. Może być lokalne (na Twoim komputerze) lub zdalne (np. na GitHubie, GitLabie, Bitbuckecie czy na serwerze). Repozytorium zawiera wszystkie pliki, historię zmian oraz metadane dotyczące projektu.

Aby utworzyć repozytorium w bieżącym katalogu, użyj:

git init

Jeśli chcesz sklonować istniejące repozytorium z GitHuba:

git clone https://github.com/user/projekt.git

Commit

Commit to zapis zmian w repozytorium – można go traktować jak zapisanie „migawki” (snapshotu) projektu w danym momencie. Każdy commit ma unikalny identyfikator (hash), dzięki czemu można do niego wrócić w przyszłości.

Tworzenie commitu:

git commit -m "Opis zmian"

Commity pozwalają cofać się do poprzednich wersji projektu i analizować historię zmian.

Gałąź (Branch)

Gałęzie umożliwiają pracę nad różnymi wersjami projektu bez wpływu na główny kod. Domyślną gałęzią w Git jest zazwyczaj main (dawniej master). Można tworzyć nowe gałęzie do pracy nad nowymi funkcjonalnościami i łączyć je później z główną wersją.

Tworzenie gałęzi:

git branch nowa-galaz

Przełączenie się na inną gałąź:

git switch nowa-galaz

Merge (Scalanie)

Merge to operacja łączenia zmian z jednej gałęzi do drugiej. Najczęściej używa się go do dodawania nowo opracowanej funkcjonalności do głównej wersji kodu.

Scalanie zmian z innej gałęzi:

git merge nowa-galaz

Jeśli pojawi się konflikt (np. ten sam fragment kodu został zmieniony w dwóch różnych gałęziach), Git poprosi o jego ręczne rozwiązanie.

Pull i Push

Ponieważ Git jest systemem rozproszonym, zmiany w kodzie można przechowywać lokalnie, a także wysyłać je do zdalnego repozytorium.

Pobranie zmian z serwera (np. GitHub)

git pull

Wysłanie zmian do repozytorium zdalnego

git push origin main

Staging Area (Obszar indeksowania)

Zanim zmiany zostaną zapisane w historii projektu (commit), muszą najpierw trafić do tzw. staging area. To taka „poczekalnia”, gdzie wybierasz, które pliki mają zostać dodane do commita.

Dodanie pliku do obszaru staging

git add plik.txt


Dodanie wszystkich zmian

git add .

Status i Log – podgląd zmian

Czasem warto sprawdzić, co dzieje się w repozytorium. Git umożliwia podgląd zmian i historii projektu.

Sprawdzenie statusu repozytorium

git status

Wyświetlenie historii commitów

git log

Najczęstsze błędy w Git i sposoby ich rozwiązania

Człowiek spychający problemy poza tablicę

Praca z Gitem bywa intuicyjna, ale nawet doświadczeni użytkownicy mogą natknąć się na błędy. Niektóre wynikają z literówek, inne z nieznajomości mechanizmów Git’a. Poniżej znajdziesz zestawienie najczęstszych problemów i sposoby ich naprawy.

1. Zapomniałem/-am dodać pliku do commita

Wykonałeś commit, ale zapomniałeś dodać do niego jakiś plik.

Rozwiązanie:

Możesz poprawić ostatni commit i dodać brakujący plik, dzięki temu commit zostanie zaktualizowany, ale jego opis pozostanie taki sam.

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

Uwaga: Jeśli commit został już wysłany do repozytorium zdalnego (git push), nie używaj tego rozwiązania, ponieważ może to spowodować konflikty dla innych użytkowników.

2. Chcę cofnąć commit, ale nie stracić zmian

Na przykład jeśli commit został wykonany za wcześnie lub zawiera błędy.

Rozwiązanie:

Jeśli nie wysłałeś jeszcze commita (git push), możesz go cofnąć, ale zachować zmiany w plikach:

git reset --soft HEAD~1

Teraz zmiany wróciły do staging area, więc możesz poprawić je i wykonać commit ponownie.

3. „fatal: Not a git repository”

Próbujesz wykonać komendę Git, ale otrzymujesz komunikat:

fatal: Not a git repository (or any of the parent directories): .git

Rozwiązanie:

Ten błąd oznacza, że nie znajdujesz się w katalogu repozytorium Git. Aby to naprawić:

Sprawdź, czy jesteś w odpowiednim katalogu:

pwd  # Wyświetli bieżący katalog (Linux/macOS)
cd   # Sprawdź aktualną lokalizację (Windows)

Jeśli zapomniałeś zainicjalizować repozytorium, użyj:

git init

4. „fatal: Authentication failed” podczas „git push”

Próbujesz wysłać zmiany do repozytorium zdalnego, ale Git odrzuca Twoje dane logowania.

Rozwiązanie:

Sprawdź, czy poprawnie skonfigurowałeś zdalne repozytorium:

git remote -v

Jeśli korzystasz z GitHub, upewnij się, że używasz klucza SSH lub tokenu zamiast hasła. Możesz dodać nowy klucz SSH do GitHub:

ssh-keygen -t rsa -b 4096 -C "twoj@email.com"

Następnie dodaj klucz do GitHuba i skonfiguruj połączenie:

git remote set-url origin git@github.com:user/repo.git

Informujemy: Jeśli chcesz dowiedzieć się jak wygenerować klucz SSH RSA w systemie Windows, zapraszamy do zapoznania się z naszym poradnikiem Generowanie kluczy SSH (RSA) w systemie Windows

Podsumowanie

Git to potężne narzędzie, które ułatwia zarządzanie kodem i śledzenie zmian w projektach. W tym przewodniku omówiliśmy kluczowe aspekty jego działania – od instalacji, przez podstawowe komendy, aż po rozwiązywanie typowych błędów.

Poznałeś/-aś koncepcję repozytoriów, commitów, gałęzi i scalania zmian, co pozwoli Ci skutecznie pracować nad kodem zarówno samodzielnie, jak i w zespołach. Nauczyłeś/-aś się także, jak cofać zmiany, radzić sobie z konfliktami i wysyłać kod do zdalnych repozytoriów.

Jeśli dopiero zaczynasz swoją przygodę z Gitem, warto regularnie ćwiczyć komendy i eksperymentować w swoim własnym repozytorium. W miarę nabierania doświadczenia, Git stanie się dla Ciebie nieocenionym wsparciem w codziennej pracy programistycznej.

Autor:

Konrad Matus

Lojalny mnich w Zenbox.pl, zawsze pomocny i przeważnie uśmiechnięty. Zwolennik tekstu pisanego i samego pisania. Prywatnie mąż, ojciec i syn, dokładnie w tej kolejności. W wolnym czasie remontuje, produkuje muzykę elektroniczną i gra w grę... World of Warcraft.

Może ci się spodobać również

Laptop i ręce człowieka z nakładką tarczy.
Porady - 17 kwietnia 2025 12:28

Zero Trust Security w WordPress: Jak zabezpieczyć stronę przed nieautoryzowanym dostępem?

Bezpieczeństwo stron internetowych to temat, który nigdy nie traci na znaczeniu. W dobie rosnącej liczby ataków hakerskich, wycieków danych i zagrożeń typu brute force, tradycyjne podejście do ochrony stron WordPress może nie być wystarczające. Właśnie dlatego coraz więcej firm i administratorów stron internetowych wdraża model Zero Trust Security. Czym różni się Zero Trust od klasycznych […]

Więcej →

Człowiek z mapą gotowy do migracji
Porady - 20 marca 2025 8:55

5 Najczęstszych błędów popełnianych podczas migracji strony internetowej na nowy serwer i jak ich uniknąć

Dobrze pamiętam gdy pierwszy raz zabierałem się za przeniesienie strony internetowej pomiędzy serwerami. Towarzyszyło mi uczucie zagubienia, kwestionowałem jeszcze wtedy bardzo swoje umiejętności, jednak powiedzenie „strach ma wielkie oczy” wyjątkowo dobrze wpisywało się w całą sytuację. Czy migracja strony www może być wyzwaniem? Oczywiście, jednak użyję tutaj mojego ulubionego zwrotu, „to zależy” od na przykład […]

Więcej →

Porady - 14 marca 2025 11:41

Litespeed Cache (Cykl) – Zaawansowana konfiguracja cz.9 Narzędzia – Finał

Dzisiejszy artykuł kończy nasz miły cykl o zaawansowanej konfiguracji wtyczki Litespeed Cache. Wszystko ma swój początek i swój koniec, oprócz kija, który ma dwa końce, choć niektórzy twierdzą, że dwa początki. Na filozofię może znajdziemy kiedyś trochę czasu, ale aktualnie wróćmy do technikaliów, zapraszam do czytania. Narzędzia w LiteSpeed Cache – co tu znajdziemy? Kategoria […]

Więcej →