Tämä asiakirja on laadittu yrityksen sisäisten Git Flow -sääntöjen yhtenäistämiseksi. Tämä menetelmä ei ole puhdas Git Flow -menetelmä, vaan se on sekoitus sekä Git Flow'ta että GitLab Flow'ta, ja siinä on käytetty yrityksen parhaita käytäntöjä, jotka on laadittu useiden vuosien ajan. Se auttaa pitämään arkiston historian siistinä ja luettavana sekä hallitsemaan paremmin muutoksia ja projektin elinkaarta.
Tämä asiakirja on kirjoitettu yrityksen sisäisten GitFlow-sääntöjen yhtenäistämiseksi. Menetelmä ei ole puhdas GitFlow, vaan se on sekoitus sekä GitFlow'ta että GitLab Flow'ta, ja siinä on käytetty yrityksen parhaita käytäntöjä, jotka on laadittu useiden vuosien ajan. Se auttaa pitämään arkiston historian siistinä ja luettavana sekä hallitsemaan paremmin muutoksia ja projekti elinkaaret.
Arkiston alustaminen
Kun olet alustanut arkiston, luo arkiston kehittää ja master haara, jos se ei ollut oletusarvoisesti mukana. Develop-haaran pitäisi sisältää kehitys koodi joka on master-haaran peili, jossa on uusia ominaisuuksia. Master-haara sisältää vakaan version koodista, joka edustaa tuotantotilaa. Molemmilla on ääretön elinikä, ja verrattuna muihin Git Flow'n haaroihin niitä ei koskaan poisteta. Aseta asianmukaiset suojaussäännöt: vaatia pull request -arviointeja ennen yhdistämistä ja vaatia tilantarkistusten läpäisemistä ennen yhdistämistä. Voit myös harkita, että sallit vain valitut joukkue jäseniä yhdistämään muutoksia pääversioon.
HUOM: Joskus projektille on tärkeää lisätä lisää loputtomia haaroja, esimerkiksi edustamaan käytettävissä olevia ympäristöjä. Pidä kuitenkin kiinni "kahden säännön" periaatteesta, jos mahdollista.
Ominaisuushaarat
Kun aloitat työskentelyn tietyn ominaisuuden kanssa, varmista ensin, että sinulla on oma kehittää haara synkronoitu.
$ git checkout develop && git pull --rebase
Siirry sitten ominaisuushaaraan. Nimeä se annetun skeeman mukaisesti: feature-JIRA-TASK-ID tai voit myös rikkoa tätä sääntöä ja nimetä sen eri tavalla. Varmista tällöin, että se ei ole ristiriidassa julkaisu-, hotfix-, bugfix-, kehitys- tai päähaaralle varattujen mallien kanssa. JIRA-tehtävätunnusten säilyttäminen auttaa sinua hallitsemaan ominaisuushaaroja tehokkaammin.
$ git checkout -b feature-JIRA-TASK-ID develop
Tämän haaran pitäisi olla olemassa niin kauan kuin kyseistä ominaisuutta kehitetään ja sen jälkeen se yhdistetään vanhempaan haaraan. Jos haluat sitoutua paikalliseen haaraasi, noudata tätä komentoa:
On suositeltavaa, että lisäät paikalliseen haaraasi lisää komentoja noudattamalla sääntöä "Sitoudu aikaisin ja usein". Lopulta ne on kuitenkin puristettava yhdeksi JIRA Taskia edustavaksi toimitukseksi. Usein commitoiminen auttaa sinua hallitsemaan kehityshistoriaasi. Kun ominaisuus on valmis, on aika avata Pull Request haaran kehittämiseksi. Ensin voit työntää paikallisen haarasi, jos sitä ei ole työnnetty liian pitkälle:
Ennen kuin avaat pull requestin, varmista seuraavat asiat:
a asianmukainen kuvaus on annettu - tavallisesti linkitä JIRA-tehtäväsi, mutta voit myös sisällyttää joitakin hyödyllisiä tietoja, jotka liittyvät nykyiseen koodiin.
CircleCI vaiheet läpäistiin onnistuneesti
sinun tiimin jäsenet määrättiin - on hyvä käytäntö sisällyttää kaikki tiimisi jäsenet toimeksiantajiksi.
... arvioijat valittiin - arvioijien määrä riippuu tiimistäsi
koodisi on oikeasti valmis tarkistettavaksi - katso koodia vielä kerran, mieti vielä kerran, onko siinä vielä jotain korjattavaa, testaa sitä paikallisesti. ja varmista, että se on valmis jatkotoimia varten.
on ei yhdistämisristiriitoja ja haara on ajan tasalla developin kanssa. - jos niitä on, ratkaise ne ensin
$ git checkout develop && git pull --rebase
$ git checkout feature-JIRA-TASK-ID && git rebase develop # käytä -i lippua squashia varten.
$ git push -f origin feature-JIRA-TASK-ID 1TP61Käytä tätä varovasti, koska -f-lippu korvaa etätietovaraston.
pitää vain tärkeät komitot - jokaisen toimituksen tulisi olla esimerkiksi JIRA-tehtävä, JIRA-TASK-ID: Uuden ominaisuuden konfigurointi; muiden pitäisi olla puristettu uudelleenasennuksen aikana haara ja develop-haara
sinulla on oikea määränpäähaara valittu
et unohda muuttaa JIRA-tehtävän tilaa
Yhdistetään ominaisuushaara
On aika yhdistää muutokset kehityshaaraan, kun:
tiimin valitut jäsenet ovat hyväksyneet pull requestin
kaikki testit on suoritettu onnistuneesti
ei ole yhdistämisristiriitoja ja komitointihistoria näyttää hyvältä.
Tämän voi tehdä joko projektipäällikkö tai ominaisuuksien kehittäjä. Suorita yhdistäminen seuraavien ohjeiden mukaisesti:
Nykyisestä julkaisusta vastaavan henkilön tulisi luoda julkaisuhaarat. Yleensä julkaisuja luodaan määräajoin, esimerkiksi sen mukaan, että sprintti elinkaari.
Semanttinen versiointi
Julkaisuhaaralle oikean nimen ja sitä vastaavan tunnisteen antaminen ei ole aivan alussa helppo tehtävä. On hyvä käytäntö aloittaa semanttisen versioinnin käyttö (https://semver.org/), mikä mahdollistaa paremman hallinnan ja tekee git-historian lukemisesta helpompaa. Versio-merkkijono muodostetaan MAJOR.MINOR.PATCH-kaavion mukaisesti:
MAJOR - muutos, joka edustaa yhteensopimattomia API-muutoksia.
MINOR - uusien ominaisuuksien lisääminen taaksepäin yhteensopivalla tavalla.
PATCH - lisäämällä taaksepäin yhteensopivia bugikorjauksia
Voit myös käyttää erityisiä päätteitä, kuten beta- tai legacy-haaroja kuvaavia päätteitä, tai luoda esijulkaisuja. Nimeä se tällöin oikein, esimerkiksi 1.1.0-beta.4, 1.1.0-beta.5 tai 1.1.0-alpha.
Julkaisun tekeminen
Julkaisuhaaran tulisi olla developin tytärhaara, ja se voisi sisältää vain virhekorjauksiin liittyviä komentoja.
Haaran nimen tulisi perustua julkaisuversioon, ja sen etuliitteen tulisi olla release-: release-MAJOR.MINOR.PATCH. Julkaisuhaaran pitäisi olla täysin testattu sekä automaattisesti että manuaalisesti on lavastusympäristö. Jos virheitä ilmenee, tämä on viimeinen tilaisuus työntää asianmukaiset korjaukset ja suorittaa koko prosessi uudelleen, niin kauan kuin sitä ei tarkisteta positiivisesti ja se on valmis jatkokäsittelyyn. Tämän jälkeen olisi työnnettävä julkaisutoimitus, jossa muutetaan nykyisen julkaisuversion merkkijonoa tiedostoissa, kuten package.jsonissa. Sen pitäisi vaikuttaa myös CHANGELOG.md-tiedostoon. Näin voit seurata kaikkia muutoksia ennen varsinaista julkaisua ja valmistella sisältöä GitHub-julkaisua varten, kun yhdistämisprosessi on valmis. Yhden tiedoston päivityksen tulisi koostua kaikista julkaisun muutoksista, jotka on ryhmitelty kolmeen luokkaan: ominaisuudet, korjaukset ja ylläpito.
Varmista kuitenkin ensin, että sekä develop- että master-haarasi ovat ajan tasalla.
Tässä vaiheessa voidaan päättää luoda toinen vetopyyntö masteriin julkaisuhaaran kanssa. Voi olla hyvä ajatus suorittaa lisätarkistus, jos kaikki testit menevät hyvin läpi etäkoneella.
$ git checkout master
$ git merge release-M.M.P.
$ git tag -a M.M.P # lisäysviesti voidaan asettaa -m-lippukkeella.
$ git push origin M.M.P
$ git push origin master
$ git branch -d release-M.M.P
$ git push origin :release-M.M.M.P
Siirry sitten GitHubin julkaisusivulle ja paina "Draft new release" -painiketta. Valitse näkyviin tulevalla lomakkeella nykyinen versiotunniste, aseta julkaisun otsikko, joka on samanlainen kuin julkaisutoimitus (Product Name M.M.P release), ja asianmukainen kuvaus, joka perustuu CHANGELOG.md-tiedostoon. Julkisten projektien osalta kuvauksen tulisi sisältää luettelo kaikista nykyiseen julkaisuun sisältyvistä PR:istä.
Jos joitain virhekorjauksia on sovellettu julkaisuhaaraan, varmista, että olet päivittänyt develop-haarasi:
Tärkein ero bugien ja hot fixien välillä on niiden kohdehaarat.
Bugfix
Vikakorjausten tulisi korjata julkaisuhaaroja ainoana koodin päivittämisen muotona ennen sen yhdistämistä masteriin. Luo ensin haara nykyisestä ominaisuushaarasta. Varmista, että se on paikallisesti ajan tasalla.
Sitoudu sitten tarvittaviin muutoksiin. Kun prosessi on valmis, luo pull request ja kohdista se julkaisuhaaraan. Noudata feature branch -osion ohjeita. Lopullisen commit-otsikkosi tulee vastata annettua skeemaa: "Bugfix M.M.P: Problem essence fix". Kun pull request on hyväksytty, on aika yhdistää se nykyiseen julkaisuun.
Jos haluat tehdä hotfixin master-haaraan, on suoritettava hyvin samanlaiset vaiheet kuin vikakorjauksen yhteydessä, kunhan pidät mielessä, että kohde-haara on nyt master-haara.
$ git checkout master && git pull --rebase
$ git checkout -b hotfix-X.Y.(Z+1) # M.M.P edustaa nykyistä julkaisua.
Noudata sitten tavanomaisia kehitysvaiheita, ja kun prosessi on valmis, luo pull request, jonka kohteena on master-haara. Muista, että lopullisen toimituksen on vastattava annettua skeemaa "Hotfix X.Y.(Z + 1): Problem essence fix". Kun jokainen tarkistuspiste on läpäissyt onnistuneesti, suorita yhdistäminen masteriin. Nämä vaiheet eroavat vikakorjausta varten esitetyistä, koska meidän on siirrettävä nykyinen julkaisuversio.