docs: update Git basics instructions and workflow guide
This commit is contained in:
parent
5acc0cfea6
commit
ca2e894f98
216
z1.txt
216
z1.txt
@ -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 (15–20 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?
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user