Dodat GIT.md — uputstvo za gitflow grane i tok rada

This commit is contained in:
2026-06-27 09:53:01 +02:00
parent 99ae077082
commit 03ab1749a6
+108
View File
@@ -0,0 +1,108 @@
# Git tok rada (NTech)
Projekat koristi **Gitflow** model: dve trajne grane (`main`, `develop`) i tri vrste
privremenih grana (`feature/*`, `release/*`, `hotfix/*`).
## Grane
| Grana | Uloga | Pravilo |
|---|---|---|
| `main` | **samo stabilne, objavljene verzije** | nikad direktan commit; ulazi samo `release/*` ili `hotfix/*`, uz tag verzije |
| `develop` | integraciona grana — sav razvoj se skuplja ovde | radne grane se vraćaju ovde |
| `feature/*` | jedna nova funkcija | grana se **od `develop`**, vraća **u `develop`** |
| `release/*` | priprema verzije (zamrznut develop, samo popravke) | ide **u `main` + `develop`** |
| `hotfix/*` | hitna popravka produkcije | grana se **od `main`**, vraća **u `main` + `develop`** |
## Remote-ovi
| Remote | URL | Uloga |
|---|---|---|
| `gitea` | `git.vm-net.in.rs:Dasko/GoNtech.git` | primarni (privatni) |
| `origin` | `github.com:dalibor31/GoNTech.git` | mirror |
`develop` i `main` prate `gitea`. Push se radi na oba remote-a (vidi dole).
---
## Svakodnevni rad — nova funkcija
```bash
git checkout develop
git pull # povuci najnovije
git checkout -b feature/ime-funkcije # nova grana od develop
# ... rad, commit-ovi ...
git checkout develop
git merge feature/ime-funkcije # spoji nazad u develop
git branch -d feature/ime-funkcije # obriši lokalnu granu
```
Konvencija imena: `feature/kratak-opis` (npr. `feature/pdv-izvestaj`,
`feature/servis-garancija`).
## Objava stabilne verzije (`develop` → `main`)
Kad je `develop` testiran i spreman za isporuku:
```bash
git checkout main
git merge develop
git tag v1.0.0 # označi verziju (semver)
```
Svaki commit na `main` mora imati tag verzije — to je „release".
## Hitna popravka produkcije (hotfix)
Bag na objavljenoj verziji koji ne može da čeka sledeći release:
```bash
git checkout main
git checkout -b hotfix/opis-popravke # grana se OD main
# ... popravka + commit ...
git checkout main
git merge hotfix/opis-popravke
git tag v1.0.1 # nova zakrpljena verzija
git checkout develop
git merge hotfix/opis-popravke # popravka mora i u develop
git branch -d hotfix/opis-popravke
```
---
## Push na remote (oba)
```bash
# develop
git checkout develop
git push gitea develop
git push origin develop
# main (samo posle objave verzije, sa tagovima)
git checkout main
git push gitea main --tags
git push origin main --tags
```
Push se radi **na zahtev** — ne automatski posle svakog commita.
## Pravila
- **Nikad commit direktno na `main`.** Sve ide preko `develop` ili `hotfix/*`.
- Preporuka: uključi **branch protection** za `main` na Gitea
(Settings → Branches) da se zabrani direktan push.
- Commit poruke na srpskom (ekavica), bez `Co-Authored-By` trailera.
- `feature/*` grane su kratkog veka — spoji i obriši čim je funkcija gotova.
## Brza referenca
```bash
git branch -vv # grane + koju remote granu prate
git log --oneline -10 # poslednjih 10 commit-ova
git status # šta je promenjeno
git tag # spisak verzija
```