Jak działa Git? Przewodnik dla początkujących

zenbox.pl 1 dzień temu

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żeli nie wiesz jak zacząć.

Czym jest Git i jak działa?

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żeli 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

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 zwykle 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 manualne 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

Praca z Gitem bywa intuicyjna, ale choćby 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żeli 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, iż nie znajdujesz się w katalogu repozytorium Git. Aby to naprawić:

Sprawdź, czy jesteś we właściwym 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ę, iż 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żeli 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 najważniejsze 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.

Idź do oryginalnego materiału