diff --git a/z1.txt b/z1.txt index 57433f9..0d9255f 100644 --- a/z1.txt +++ b/z1.txt @@ -1,6 +1,6 @@ z1 z2 -Pewnie! Poniżej masz zwięzłe, „dla ucznia” instrukcje do tematu **2.2 Podstawy Gita – rejestrowanie zmian w repozytorium**. To jest gotowa ściąga + scenariusz ćwiczenia krok-po-kroku. +Pewnie! Poniżej masz uproszczone instrukcje do tematu **2.2 Podstawy Gita – rejestrowanie zmian w repozytorium**. # 2.2 Rejestrowanie zmian w Git @@ -9,24 +9,22 @@ Pewnie! Poniżej masz zwięzłe, „dla ucznia” instrukcje do tematu **2.2 Pod Nauczysz się: * sprawdzać stan repozytorium, -* dodawać pliki do „poczekalni” (staging area), -* zatwierdzać (commitować) zmiany, -* ignorować niepotrzebne pliki, -* usuwać/zmieniać nazwy plików w projekcie pod kontrolą Gita, -* przeglądać różnice (diff) tego, co **poza** i **w** poczekalni. +* dodawać pliki do poczekalni, +* zatwierdzać zmiany, +* przeglądać różnice. --- -## Słowniczek (bardzo krótko) +## Słowniczek -* **Śledzony (tracked)** – plik był w ostatnim commicie. Może być: niezmodyfikowany, zmodyfikowany, albo w poczekalni. -* **Nieśledzony (untracked)** – plik nowy dla Gita (nie był w ostatnim commicie). -* **Poczekalnia (staging area / index)** – lista zmian, które **wejdą do najbliższego commita**. -* **Commit** – zapisana migawka projektu z opisem. +* **Śledzony** – plik był w ostatnim commicie +* **Nieśledzony** – plik nowy dla Gita +* **Poczekalnia** – lista zmian, które wejdą do najbliższego commita +* **Commit** – zapisana migawka projektu --- -## Najważniejsze polecenia (z przykładami) +## Najważniejsze polecenia ### 1) Sprawdź status @@ -34,13 +32,10 @@ Nauczysz się: git status ``` -* Pokazuje gałąź, pliki **nieśledzone**, **zmodyfikowane** i **w poczekalni**. - -### 2) Zacznij śledzić plik / dodaj do poczekalni +### 2) Dodaj do poczekalni ```bash -git add README # pojedynczy plik -git add . # wszystko z bieżącego katalogu (ostrożnie) +git add nazwa_pliku ``` ### 3) Zobacz różnice @@ -51,201 +46,58 @@ git add . # wszystko z bieżącego katalogu (ostrożnie) git diff ``` -* **Zmiany w poczekalni (wejdą do commita)**: +* **Zmiany w poczekalni**: ```bash -git diff --staged # to samo co: git diff --cached +git diff --staged ``` -### 4) Zatwierdź zmiany (commit) +### 4) Zatwierdź zmiany ```bash -git commit # otworzy edytor do wpisania wiadomości -git commit -m "Krótki, rzeczowy opis zmiany" -``` - -### 5) Pomiń poczekalnię dla śledzonych plików - -> Działa **tylko** dla plików już śledzonych. - -```bash -git commit -a -m "Szybki commit bez ręcznego git add" -``` - -### 6) Cofnij dodanie do poczekalni / porzuć zmiany w pliku - -```bash -git reset HEAD # wyjmij plik z poczekalni (zostają zmiany na dysku) -git checkout -- # porzuć zmiany w pliku i przywróć wersję z HEAD -``` - -### 7) Ignoruj pliki – `.gitignore` - -Utwórz plik `.gitignore` w katalogu projektu: - -```gitignore -# przykłady: -*.o -*.a -*~ -/TODO -build/ -doc/*.txt -doc/**/*.txt -``` - -Zasady: - -* `#` – komentarz -* `*` – dowolny ciąg znaków, `?` – jeden znak, `[abc]` – zestaw znaków -* `/` na końcu – katalog -* `!wzorzec` – zanegowanie (wyjątek od reguły) - -### 8) Usuń plik z repo (i z dysku) - -```bash -git rm PROJECTS.md -git commit -m "Usuń PROJECTS.md" -``` - -* Jeśli plik był już w poczekalni po modyfikacji – użyj `git rm -f`. - -**Zostaw plik na dysku, ale przestań śledzić:** - -```bash -git rm --cached duzy.log -``` - -### 9) Zmień nazwę/przenieś plik - -```bash -git mv stara_nazwa nowa_nazwa -# równoważne ręcznie: -# mv stara_nazwa nowa_nazwa && git rm stara_nazwa && git add nowa_nazwa +git commit -m "Opis zmian" ``` --- -## „Zwięzły status” – szybka legenda - -```bash -git status -s -``` - -Przykład: - -``` - M README # M po prawej: zmieniony w katalogu roboczym -M lib/simplegit.rb # M po lewej: zmiana jest w poczekalni -A lib/git.rb # A w poczekalni (nowy plik dodany) -?? LICENSE.txt # plik nieśledzony -``` - -Dwukolumnowo: **lewa** = poczekalnia, **prawa** = katalog roboczy. - ---- - -## Rekomendowany workflow (bezpieczny) +## Prosty workflow 1. **Sprawdź status**: `git status` -2. **Obejrzyj różnice**: `git diff` -3. **Dodaj do poczekalni** konkretne pliki: `git add ` -4. **Sprawdź co wejdzie**: `git diff --staged` -5. **Commit** z sensownym opisem: `git commit -m "…"` -6. **Powtórz** po kolejnych zmianach. - -> Uwaga: jeżeli edytowałeś plik **po** `git add`, dodaj go **ponownie** (`git add `), inaczej commit nie uwzględni ostatniej poprawki! +2. **Dodaj do poczekalni**: `git add ` +3. **Commit**: `git commit -m "Opis"` --- -## Najczęstsze błędy i szybkie naprawy +## Ćwiczenie (10 min) -* „Commit nic nie zawiera” → zapomniałeś `git add`. Dodaj i powtórz. -* „Plik w poczekalni i jednocześnie zmodyfikowany” → dodałeś go, a potem znów zmieniłeś. Użyj: - - * `git diff` (co jest **poza** poczekalnią), - * `git diff --staged` (co **wejdzie** do commita), - * i **ponownie** `git add `. -* „Przez pomyłkę dodałem śmieci” → dodaj do `.gitignore`, a plik wyjmij ze śledzenia: `git rm --cached `. - ---- - -## Mini-ćwiczenie (15–20 min) - -1. **Przygotuj repo** +1. **Utwórz repozytorium** ```bash git init git-lesson cd git-lesson +``` + +2. **Stwórz i zakomituj plik** + +```bash echo "Witaj Git!" > README.md git add README.md -git commit -m "Inicjalny commit z README" +git commit -m "Dodaj README" ``` -2. **Dodaj nowy plik i przećwicz statusy** +3. **Modyfikuj plik** ```bash -echo "Zasady" > RULES.md -git status # zobaczysz ?? RULES.md -git add RULES.md -git status -s # powinno pokazać A RULES.md -git commit -m "Dodaj RULES.md" -``` - -3. **Modyfikacje + poczekalnia** - -```bash -echo "Linia A" >> README.md -git diff # zobaczysz różnice poza poczekalnią +echo "Druga linia" >> README.md +git status +git diff git add README.md -git diff --staged # zobaczysz różnice, które wejdą do commita -git commit -m "Uzupełnij README o Linię A" +git commit -m "Dodaj drugą linię" ``` -4. **Zmiany po dodaniu do poczekalni** +4. **Sprawdź historię** ```bash -echo "Linia B" >> README.md -git status # README pojawi się jednocześnie w staged i modified -git add README.md # dołóż najnowsze zmiany do poczekalni -git commit -m "Dodaj Linię B do README" +git log --oneline ``` -5. **.gitignore** - -```bash -echo "*.log" > .gitignore -echo "debug.log" > debug.log -git status # debug.log powinien być ignorowany -git add .gitignore -git commit -m "Dodaj regułę ignorowania *.log" -``` - -6. **Usuwanie i zmiana nazwy** - -```bash -git rm RULES.md -git commit -m "Usuń plik RULES.md" - -git mv README.md README -git commit -m "Zmień nazwę README.md -> README" -``` - -> Na koniec `git log --oneline` – sprawdź historię swoich commitów. - ---- - -## Krótka ściąga (do druku) - -* **Stan**: `git status` / `git status -s` -* **Różnice**: `git diff` (poza poczekalnią), `git diff --staged` (wejdą do commita) -* **Dodanie**: `git add ` / `git add .` -* **Commit**: `git commit -m "Opis"` / `git commit -a -m "Opis"` (tylko śledzone) -* **Wyjęcie z poczekalni**: `git reset HEAD ` -* **Porzucenie zmian w pliku**: `git checkout -- ` -* **Ignorowanie**: `.gitignore` -* **Usuwanie**: `git rm ` / `git rm --cached ` -* **Zmiana nazwy**: `git mv stara nowa` - -Chcesz, żebym przerobił to na jedną stronę A4 (PDF) dla uczniów z miejscem na odhaczenie kroków i mini-quiz na końcu? -