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 događa...
- 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 funkcionirajuća git instalacaija.
- Git flow radni na OS X, 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 inicijalizancijom istog u postojećem git repozitoriju:
git flow init
Potrebno je odgovoriti na par pitanja vezano uz konvencije imenovanja brancheva.
Preporučuje se upotreba 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šavanje funkcionalnosti
Dovršite razvoj nove funkcionalnosti. Ova akcija izvršava sljedeć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 manjih 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 funkcionalnosti:
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 poslati 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šavanjem, hotfix biva merge-an natrag u 'develop' i 'master'. Dodatno, merge u 'master' biva tagiran sa verzijom hotfixa.
git flow hotfix finish VERSION
Backlog
★ ★ ★
- Nisu sve moguće komande, samo one najč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čuje
- Pošaljite svoje prijevode, rado ću ih integrirati
★ ★ ★