Git to system nerwowy nowoczesnego IT โ kod, infrastruktura, dokumentacja, konfiguracja. Jako lider DevOps nie musisz byc guru, ale MUSISZ rozumiec model: co to commit, branch, merge i dlaczego PR to serce jakosci.
Trzy obszary Git
- **Working directory** โ Twoje pliki na dysku, biezaca praca.
- **Staging area (index)** โ poczekalnia: co WEJDZIE do nastepnego commita (`git add`).
- **Repozytorium (.git)** โ historia commitow (`git commit`).
- **Remote** โ kopia na serwerze (GitHub/GitLab), synchro przez `push`/`pull`.
Podstawowy przeplyw
git clone <url> # sklonuj repo
git checkout -b feature # nowa galaz
# ... edytujesz pliki ...
git add plik.py # do staging
git commit -m "opis" # zapis w historii
git push origin feature # wyslij na remote
# -> otwierasz Pull Request
Galezie i merge
**Branch (galaz)** to niezalezna linia pracy. Tworzysz galaz na zadanie, robisz commity, potem scalasz (**merge**) do glownej (main). Dzieki temu praca rownolegla nie psuje stabilnej wersji. **Konflikt** powstaje, gdy dwie galezie zmienily te sama linie โ Git prosi Cie o reczne rozstrzygniecie.
| Operacja | Co robi | Kiedy |
|---|---|---|
| merge | Laczy galezie, tworzac commit scalajacy | Zachowanie pelnej historii |
| rebase | Przenosi commity na nowa baze (liniowo) | Czysta, prosta historia |
| pull | fetch + merge z remote | Aktualizacja lokalnej galezi |
| revert | Nowy commit cofajacy zmiany | Bezpieczne cofniecie na wspolnej galezi |
.gitignore i higiena repo
`.gitignore` mowi Gitowi, czego NIE wersjonowac: sekrety (.env), pliki tymczasowe, artefakty buildu, foldery zaleznosci. **Sekretow nigdy nie commituj** โ raz wyslane do remote zyja w historii, nawet po usunieciu.