Podstawowe komendy Git

1. Wprowadzenie

W tej lekcji poznasz najważniejsze komendy Git, które będziesz używać codziennie. Nauczysz się tworzyć repozytorium, dodawać pliki, tworzyć commity i sprawdzać status projektu.


2. Tworzenie nowego repozytorium

2.1. git init

Inicjalizuje nowe repozytorium Git w bieżącym katalogu.

Output:

Initialized empty Git repository in /Users/jan/moj-projekt/.git/

Po wykonaniu git init zostanie utworzony ukryty katalog .git/, który przechowuje całą historię projektu.

moj-projekt/
└── .git/       # Tutaj Git przechowuje dane

2.2. Sprawdzenie struktury .git

Zawartość .git/:

HEAD            # Wskaźnik na aktualny branch
config          # Konfiguracja lokalna
objects/        # Przechowuje commity i pliki
refs/           # Referencje do branchy i tagów

3. Status repozytorium

3.1. git status

Najczęściej używana komenda! Pokazuje aktualny stan repozytorium.

Output (czyste repozytorium):

On branch main
No commits yet
nothing to commit (create/copy files and use "git add" to track)

4. Dodawanie plików

4.1. Tworzenie pliku

4.2. Sprawdzenie statusu

Output:

On branch main
No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        README.md

nothing added to commit but untracked files present (use "git add" to track)

Git widzi nowy plik, ale go jeszcze nie śledzi (untracked).

4.3. git add

Dodaje pliki do staging area (poczekalni).

4.4. Status po dodaniu

Output:

On branch main
No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   README.md

Plik jest teraz w staging area – gotowy do commita.


5. Tworzenie commitów

5.1. git commit

Tworzy migawkę (snapshot) projektu.

Output:

[main (root-commit) abc1234] Dodanie pliku README
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

Elementy outputu: * main – nazwa brancha * abc1234 – krótki hash commita * Dodanie pliku README – wiadomość commita * 1 file changed, 1 insertion(+) – statystyki zmian

5.2. Dobre wiadomości commitów

Dobrze:

Źle:

Zasady dobrych commitów: * Opisowe i konkretne * W trybie rozkazującym ("Dodaj", nie "Dodano" lub "Dodaję") * Krótkie (50-70 znaków) * W języku angielskim lub polskim (konsekwentnie)

5.3. git commit -a

Skrót: dodaje wszystkie zmienione pliki i tworzy commit.

Uwaga: -a działa tylko dla zmienionych plików, nie dla nowych!


6. Historia commitów

6.1. git log

Wyświetla historię commitów.

Output:

commit abc123def456... (HEAD -> main)
Author: Jan Kowalski <jan@example.com>
Date:   Mon Dec 4 10:30:00 2024 +0100

    Dodanie pliku README

commit xyz789...
Author: Jan Kowalski <jan@example.com>
Date:   Mon Dec 4 09:15:00 2024 +0100

    Inicjalizacja projektu

6.2. git log --oneline

Kompaktowy widok (1 linia na commit):

Output:

abc1234 Dodanie pliku README
xyz7890 Inicjalizacja projektu

6.3. git log --graph

Wizualizacja branchy:

Output:

* abc1234 (HEAD -> main) Dodanie pliku README
* xyz7890 Inicjalizacja projektu

6.4. Przydatne opcje git log


7. Różnice między plikami

7.1. git diff

Pokazuje nieza-commitowane zmiany.

Output:

7.2. git diff --staged

Pokazuje zmiany w staging area:

7.3. git diff commit1 commit2

Porównuje dwa commity:


8. Usuwanie plików

8.1. git rm

Usuwa plik z repozytorium i z dysku:

8.2. git rm --cached

Usuwa plik tylko z Git (pozostawia na dysku):

Przydatne, gdy przypadkowo dodałeś plik, który powinien być w .gitignore.


9. Przenoszenie/Zmienianie nazw plików

9.1. git mv

Jest to równoważne:


10. Wyświetlanie zawartości

10.1. git show

Pokazuje szczegóły commita:

10.2. git show HEAD

Pokazuje ostatni commit:


11. Praktyczny przykład – pierwszy projekt

Stwórzmy kompletny projekt krok po kroku:


12. Trzy stany plików w Git

Working Directory → Staging Area → Repository
     (edycja)        (git add)     (git commit)

Working Directory: * Pliki, nad którymi pracujesz * Status: modified (zmodyfikowane)

Staging Area: * Pliki przygotowane do commita * Status: staged (w poczekalni)

Repository: * Zapisane commity * Status: committed (zatwierdzone)


13. Workflow – podsumowanie


14. Przydatne skróty


15. Ignorowanie plików tymczasowo

15.1. Unstage (cofnięcie z staging area)

Lub nowsza składnia:

15.2. Cofnięcie zmian w pliku

Lub nowsza składnia:

Uwaga: To nieodwracalnie usuwa niezacommitowane zmiany!


16. Cheatsheet – podstawowe komendy

Komenda Opis
git init Inicjalizuj repozytorium
git status Sprawdź status
git add <plik> Dodaj plik do staging area
git add . Dodaj wszystkie pliki
git commit -m "msg" Stwórz commit
git commit -am "msg" Add + commit (zmienione pliki)
git log Historia commitów
git log --oneline Kompaktowa historia
git diff Pokaż zmiany (niezacommitowane)
git diff --staged Pokaż zmiany w staging area
git rm <plik> Usuń plik
git mv <old> <new> Zmień nazwę pliku
git show <commit> Pokaż szczegóły commita
git restore <plik> Cofnij zmiany w pliku
git restore --staged <plik> Usuń z staging area

17. Częste błędy i rozwiązania

Błąd 1: Zapomniałem dodać plik do commita

Błąd 2: Zła wiadomość commita

Błąd 3: Przypadkowo dodałem plik

Błąd 4: Chcę cofnąć wszystkie zmiany


18. Podsumowanie

Po tej lekcji powinieneś umieć:

  • ✅ Inicjalizować repozytorium (git init)
  • ✅ Sprawdzać status (git status)
  • ✅ Dodawać pliki (git add)
  • ✅ Tworzyć commity (git commit)
  • ✅ Przeglądać historię (git log)
  • ✅ Sprawdzać różnice (git diff)
  • ✅ Usuwać i zmieniać nazwy plików

Podstawowy workflow:

edit → git add → git commit → git log

Co dalej:

  • Lekcja 4 – Branches (gałęzie) i praca z wieloma wersjami
  • Lekcja 5 – Merge i rozwiązywanie konfliktów
  • Lekcja 6 – Praca z GitHub i zdalnymi repozytoriami

Gratulacje! Znasz już podstawy Git! 🎉