O git-flowu
git-flow je skup ekstenzija koje omogućuju da se operacije na repozitoriju, koje implementiraju branching model Vincenta Driessena, obavljaju lakše. more
★ ★ ★
Ovaj šalabahter prikazuje osnovnu uporabu i efekte git-flow operacija
★ ★ ★
Osnovni savjeti
- Git flow ima izvrsnu pomoć i izlaz na komandnoj liniji. Pažljivo čitajte da vidite što se dešava...
- OSX/Windows klijent Sourcetree je izvrstan GUI alat za git koji nudi podršku i za git-flow.
- Git-flow je rješenje zasnovano na mergeovima. Ne vrši se rebase brancheva sa novim razvijenim funkcionalnostima.
★ ★ ★
Postavljanje
- Potrebna je funckcionirajuća git instalacaija.
- Git flow radni na OSX, Linuxu i Windowsima
★ ★ ★
OSX
Homebrew$ brew install git-flow-avhMacports
$ port install git-flow-avh
Linux
$ apt-get install git-flow
Windows (Cygwin)
$ wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash
Trebate wget i util-linux za instaliranje git-flow.
Za detaljne instalacijske upute posjetite git flow wiki.
Osnove
Git flow je potrebno inicijalizirati da prilagodite postavke svog projekta.
★ ★ ★
Inicijalizacija
Započnite sa git-flow inicijalizaciranjem istog u postojećem git repozitoriju:
git flow init
Potrebno je odgovoriti na par pitanja vezano uz konvencije imenovanja brancheva.
Preporuča se uporaba pretpostavljenih vrijednosti.
Funkcionalnosti
- Razvoj novih funkcionalnosti za naredne releasove
- Tipično se nalaze samo u lokalnom repozitoriju
★ ★ ★
Početak nove funkcionalnosti
Nove funkcionalnost započinju se iz 'develop' brancha.
Otpočnite razvoj nove funkcionalnosti sa:
git flow feature start MYFEATURE
Ova akcija kreira branch za novu funkcionalnost baziran na 'develop' i prebacuje u njega
Dovršavnje funkcionalnosti
Dovršite razvoj nove funkcionalnosti. Ova akcija izvršava slijedeće
- Mergea MYFEATURE u 'develop'
- Uklanja branch funkcionalnosti
- Prebacuje natrag u 'develop' branch
git flow feature finish MYFEATURE
Publiciranje funkcionalnosti
Razvijate li funkcionalnost zajedno s nekim?
Publicirajte funkcionalnost na udaljeni server tako da ju mogu koristiti drugi korisnici.
git flow feature publish MYFEATURE
Preuzimanje publicirane funkcionalnosti
Preuzmite funkcionalnost koju je netko razvio.
git flow feature pull origin MYFEATURE
Možete pratiti razvoj funkcionalnost sa: git flow feature track MYFEATURE
Release
- Podrška za publiciranje release-a na produkciju
- Omogućavanje ispravke manjig bugova i pripremu metapodataka za release
★ ★ ★
Započnite release
Da započnete release, koristite git flow release komandu. Kreira release branch kreiran iz 'develop' branch-a.
git flow release start RELEASE [BASE]
Opcionalno, možete dati [BASE]
sha-1 hash commit-a iz kojeg da se započne release. Commit mora biti na 'develop' branchu.
★ ★ ★
Bilo bi pametno publicirati release branch nakon kreiranja da se omoguće release commit-i od ostalih developera. Slično publiciranju funkcionlanosti:
git flow release publish RELEASE
(Možete pratiti udaljeni release sa git flow release track RELEASE
komandom)
Dovršavanje release-a
Dovršiti release je veliki korak u git branchanju. Izvršava nekoliko akcija:
- Merge-a release branch natrag u 'master'
- Tagira release sa njegovim nazivom
- Merge-a release natrag u 'develop'
- Uklanja release branch
git flow release finish RELEASE
Ne zaboravite da pošaljete tagove sa git push --tags
Brze prepravke
- Kada je potrebno brzinski ispraviti greške na produkciji, koristi se hotfix mogućnost.
- Može se napraviti branch iz odgovarajućeg taga na master branchu koji označava produkcijsku verziju.
★ ★ ★
git flow hotfix start
Kao i druge git flow komande, hotfix se započinje sa
git flow hotfix start VERSION [BASENAME]
Argumet 'version' označava naziv hotfix release-a. Dodatno, možete specificirati 'basename' iz kojeg se započinje hotfix.
Dovršavanje hotfixa
Dovršavanje, hotfix ibiva merge-an natrag u 'develop' i 'master'. Dodatno, merge u 'master' mbiva tagiran sa verzijom hotfixa.
git flow hotfix finish VERSION
Backlog
★ ★ ★
- Nisu sve moguće komande, samo one načešće korištene
- Možete dalje normalno koristiti git i sve njegove komande, git flow je samo kolekcija alata
- Npr. 'support' mogućnost je još beta, njena se uporaba ne preporuča
- Pošaljite svoje prijevode, rado ću ih integrirati
★ ★ ★