3.0 KiB
3.0 KiB
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
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:
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:
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)
# 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 prekodevelopilihotfix/*. - Preporuka: uključi branch protection za
mainna Gitea (Settings → Branches) da se zabrani direktan push. - Commit poruke na srpskom (ekavica), bez
Co-Authored-Bytrailera. feature/*grane su kratkog veka — spoji i obriši čim je funkcija gotova.
Brza referenca
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