docs: update Git basics instructions and workflow guide

This commit is contained in:
baiobelfer 2025-09-02 10:23:33 +02:00 committed by baiobelfer (aider)
parent 5acc0cfea6
commit ca2e894f98

216
z1.txt
View File

@ -1,6 +1,6 @@
z1 z1
z2 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 # 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ę: Nauczysz się:
* sprawdzać stan repozytorium, * sprawdzać stan repozytorium,
* dodawać pliki do „poczekalni” (staging area), * dodawać pliki do poczekalni,
* zatwierdzać (commitować) zmiany, * zatwierdzać zmiany,
* ignorować niepotrzebne pliki, * przeglądać różnice.
* usuwać/zmieniać nazwy plików w projekcie pod kontrolą Gita,
* przeglądać różnice (diff) tego, co **poza** i **w** poczekalni.
--- ---
## Słowniczek (bardzo krótko) ## Słowniczek
* **Śledzony (tracked)** plik był w ostatnim commicie. Może być: niezmodyfikowany, zmodyfikowany, albo w poczekalni. * **Śledzony** plik był w ostatnim commicie
* **Nieśledzony (untracked)** plik nowy dla Gita (nie był w ostatnim commicie). * **Nieśledzony** plik nowy dla Gita
* **Poczekalnia (staging area / index)** lista zmian, które **wejdą do najbliższego commita**. * **Poczekalnia** lista zmian, które wejdą do najbliższego commita
* **Commit** zapisana migawka projektu z opisem. * **Commit** zapisana migawka projektu
--- ---
## Najważniejsze polecenia (z przykładami) ## Najważniejsze polecenia
### 1) Sprawdź status ### 1) Sprawdź status
@ -34,13 +32,10 @@ Nauczysz się:
git status git status
``` ```
* Pokazuje gałąź, pliki **nieśledzone**, **zmodyfikowane** i **w poczekalni**. ### 2) Dodaj do poczekalni
### 2) Zacznij śledzić plik / dodaj do poczekalni
```bash ```bash
git add README # pojedynczy plik git add nazwa_pliku
git add . # wszystko z bieżącego katalogu (ostrożnie)
``` ```
### 3) Zobacz różnice ### 3) Zobacz różnice
@ -51,201 +46,58 @@ git add . # wszystko z bieżącego katalogu (ostrożnie)
git diff git diff
``` ```
* **Zmiany w poczekalni (wejdą do commita)**: * **Zmiany w poczekalni**:
```bash ```bash
git diff --staged # to samo co: git diff --cached git diff --staged
``` ```
### 4) Zatwierdź zmiany (commit) ### 4) Zatwierdź zmiany
```bash ```bash
git commit # otworzy edytor do wpisania wiadomości git commit -m "Opis zmian"
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 <plik> # wyjmij plik z poczekalni (zostają zmiany na dysku)
git checkout -- <plik> # 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
``` ```
--- ---
## „Zwięzły status” szybka legenda ## Prosty workflow
```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)
1. **Sprawdź status**: `git status` 1. **Sprawdź status**: `git status`
2. **Obejrzyj różnice**: `git diff` 2. **Dodaj do poczekalni**: `git add <plik>`
3. **Dodaj do poczekalni** konkretne pliki: `git add <plik>` 3. **Commit**: `git commit -m "Opis"`
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 <plik>`), inaczej commit nie uwzględni ostatniej poprawki!
--- ---
## Najczęstsze błędy i szybkie naprawy ## Ćwiczenie (10 min)
* „Commit nic nie zawiera” → zapomniałeś `git add`. Dodaj i powtórz. 1. **Utwórz repozytorium**
* „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 <plik>`.
* „Przez pomyłkę dodałem śmieci” → dodaj do `.gitignore`, a plik wyjmij ze śledzenia: `git rm --cached <plik>`.
---
## Mini-ćwiczenie (1520 min)
1. **Przygotuj repo**
```bash ```bash
git init git-lesson git init git-lesson
cd git-lesson cd git-lesson
```
2. **Stwórz i zakomituj plik**
```bash
echo "Witaj Git!" > README.md echo "Witaj Git!" > README.md
git add 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 ```bash
echo "Zasady" > RULES.md echo "Druga linia" >> README.md
git status # zobaczysz ?? RULES.md git status
git add RULES.md git diff
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ą
git add README.md git add README.md
git diff --staged # zobaczysz różnice, które wejdą do commita git commit -m "Dodaj drugą linię"
git commit -m "Uzupełnij README o Linię A"
``` ```
4. **Zmiany po dodaniu do poczekalni** 4. **Sprawdź historię**
```bash ```bash
echo "Linia B" >> README.md git log --oneline
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"
``` ```
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 <plik>` / `git add .`
* **Commit**: `git commit -m "Opis"` / `git commit -a -m "Opis"` (tylko śledzone)
* **Wyjęcie z poczekalni**: `git reset HEAD <plik>`
* **Porzucenie zmian w pliku**: `git checkout -- <plik>`
* **Ignorowanie**: `.gitignore`
* **Usuwanie**: `git rm <plik>` / `git rm --cached <plik>`
* **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?