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! 🎉