window.pipedriveLeadboosterConfig = { base: pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster on jo olemassa') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() GitFlow - The Codest
Codest
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Toimialat
    • Fintech & pankkitoiminta
    • E-commerce
    • Adtech
    • Terveysteknologia
    • Valmistus
    • Logistiikka
    • Autoteollisuus
    • IOT
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
Takaisin nuoli PALAA TAAKSE
2019-08-13
Ohjelmistokehitys

GitFlow

Daniel Grek

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.

GitFlow
$ git init
$ git commit --allow-empty -m "Alkuperäinen toimitus"
$ git checkout -b develop master

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:

 $ git add .
 $ git commit -m "JIRA-TASK-ID: Tehtävän kuvaus"

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:

 $ git push origin feature-JIRA-TASK-ID

Kun haara on valmis, avaa vetopyyntö GitHubissa seuraamalla tätä artikkelia: https://help.github.com/en/articles/creating-a-pull-request

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:

 $ git checkout develop
 $ git merge feature-JIRA-TASK-ID
 $ git push origin develop
 $ git branch -d feature-JIRA-TASK-ID
 $ git push original :feature-JIRA-TASK-ID

Nyt JIRA-tehtävän tilaa voidaan muuttaa.

Tiedotteet

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.

 $ git checkout master && git pull --rebase
 $ git checkout develop && git pull --rebase
 $ git merge master
 $ git checkout -b release-M.M.P.
 $ git add .
 $ git commit -m "Tuote Nimi M.M.P. release"
 $ git push origin release-M.M.M.P

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:

$ git checkout develop && git merge master
$ git push origin develo

Hotfixes ja Bugfixes

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.

 $ git checkout release-M.M.P && git pull --rebase
 $ git checkout -b bugfix-M.M.P.

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.

 $ git checkout release-M.M.P.
 $ git merge bugfix-M.M.P.
 $ git push origin release-M.M.P

Hotfix

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.

 $ git checkout master && git pull --rebase
 $ git merge hotfix-X.Y.(Z+1)
 $ git tag -a X.Y.(Z+1) # lisäysviesti voidaan asettaa -m-lippukkeella.
 $ git push origin X.Y.(Z+1)
 $ git push origin master
 $ git branch -d hotfix-X.Y.(Z+1)
 $ git push origin :hotfix-X.Y.(Z+1)
 $ git checkout develop && git merge master
 $ git push origin develop

Huijauslehtinen

Aloitetaan arkisto

 $ git init
 $ git commit --allow-empty -m "Alkuperäinen toimitus"
 $ git checkout -b develop master
 $ git push origin develop
 $ git push origin master

Ominaisuudet

$ git checkout develop && git pull --rebase
$ git checkout -b feature-JIRA-TASK-ID develop

Aloita kehitys ja sitoutumiset

$ git add .
$ git commit -m "IRA-TASK-ID: Tehtävän kuvaus" #initial commit
$ git push origin feature-JIRA-TASK-ID

Avaa vetopyyntö

Uudelleenasettaminen ja pull requestin valmistelu

$ git checkout develop && git pull --rebase
$ git checkout feature-JIRA-TASK-ID && git rebase develop # käytä -i lippua squashille.
$ git push -f origin feature-JIRA-TASK-ID 1TP61Käytä tätä varovasti, koska -f-lippu korvaa etätietovaraston.

Yhdistä muutokset ja poista haara

$ git checkout develop #-haara pitäisi synkronoida develop-haaran kanssa tässä vaiheessa.
$ git merge feature-JIRA-TASK-ID
$ git push origin develop
$ git branch -d feature-JIRA-TASK-ID
$ git push origin :feature-JIRA-TASK-ID

Tiedotteet

$ git checkout master && git pull --rebase
$ git checkout develop && git pull --rebase
$ git merge master
$ git checkout -b release-M.M.P.

Luo julkaisusitoumus

$ git add .
$ git commit -m "Tuotteen nimi M.M.P. julkaisu" #initial commit
$ git push origin release-M.M.M.P

Avaa vetopyyntö

Yhdistä muutokset, julkaise ja poista haara

$ git checkout master #-haara pitäisi synkronoida master-haaran kanssa tässä vaiheessa.
$ git merge release-M.M.P.
$ git tag -a M.M.P # lisäysviesti voidaan asettaa -m-lippukkeella.
$ git push original M.M.P
$ git push origin master
$ git branch -d release-M.M.P
$ git push origin :release-M.M.M.P

Bugfix

$ git checkout release-M.M.P && git pull --rebase
$ git checkout -b virheenkorjaus-M.M.P.

$ Commit fixes
$ git add .
$ git commit -m "Bugfix M.M.P: Ongelman olennainen korjaus" #initial commit
$ git push origin bugfix-M.M.M.P

Avaa vetopyyntö

Yhdistä muutokset ja poista haara

$ git checkout release-M.M.P #-haara pitäisi synkronoida nykyisen julkaisuhaaran kanssa tässä vaiheessa.
$ git merge bugfix-M.M.P.
$ git push origin release-M.M.P
$ git branch -d bugfix-M.M.P
$ git push origin :bugfix-M.M.P

Hotfix

$ git checkout master && git pull --rebase
$ git checkout -b hotfix-X.Y.(Z+1) # M.M.P edustaa nykyistä julkaisua.

$ Sitoudu korjauksiin
$ git add .
$ git commit -m "Hotfix M.M.P: Ongelman olennainen korjaus" #initial commit
$ git push origin bugfix-M.M.M.P

Avaa vetopyyntö

Yhdistä muutokset, vapauta ja poista toimialat

$ git checkout master #-haara pitäisi synkronoida nykyisen masterin kanssa tässä vaiheessa.
$ git merge hotfix-X.Y.(Z+1)
$ git tag -a X.Y.(Z+1) # lisäysviesti voidaan asettaa -m-lipukkeella.
$ git push origin X.Y.(Z+1)
$ git push origin master
$ git branch -d hotfix-X.Y.(Z+1)
$ git push origin :hotfix-X.Y.(Z+1)
$ git checkout develop && git merge master
$ git push origin develop

Lue lisää:

  • Codestin hyvät käytännöt ohjelmistojen rakentamiseen: CircleCI
  • Kuinka luoda Google Chrome -laajennuksia Netflix-tekstitystylerin avulla?
  • React: suosituin JavaScript-kehys.

Aiheeseen liittyvät artikkelit

Ohjelmistokehitys

Tulevaisuuden web-sovellusten rakentaminen: The Codest:n asiantuntijatiimin näkemyksiä

Tutustu siihen, miten The Codest loistaa skaalautuvien, interaktiivisten verkkosovellusten luomisessa huipputeknologian avulla ja tarjoaa saumattomia käyttäjäkokemuksia kaikilla alustoilla. Lue, miten asiantuntemuksemme edistää digitaalista muutosta ja liiketoimintaa...

THECODEST
Ohjelmistokehitys

Top 10 Latviassa toimivaa ohjelmistokehitysyritystä

Tutustu Latvian parhaisiin ohjelmistokehitysyrityksiin ja niiden innovatiivisiin ratkaisuihin uusimmassa artikkelissamme. Tutustu siihen, miten nämä teknologiajohtajat voivat auttaa nostamaan liiketoimintaasi.

thecodest
Yritys- ja skaalausratkaisut

Java-ohjelmistokehityksen perusteet: A Guide to Outsourcing Successfully

Tutustu tähän keskeiseen oppaaseen Java-ohjelmistokehityksen onnistuneesta ulkoistamisesta tehokkuuden parantamiseksi, asiantuntemuksen saamiseksi ja projektin onnistumiseksi The Codestin avulla.

thecodest
Ohjelmistokehitys

Perimmäinen opas ulkoistamiseen Puolassa

Ulkoistamisen lisääntyminen Puolassa johtuu taloudellisesta, koulutuksellisesta ja teknologisesta kehityksestä, joka edistää tietotekniikan kasvua ja yritysystävällistä ilmapiiriä.

TheCodest
Yritys- ja skaalausratkaisut

Täydellinen opas IT-tarkastustyökaluihin ja -tekniikoihin

Tietotekniikan tarkastuksilla varmistetaan turvalliset, tehokkaat ja vaatimustenmukaiset järjestelmät. Lue lisää niiden merkityksestä lukemalla koko artikkeli.

Codest
Jakub Jakubowicz teknologiajohtaja ja toinen perustaja

Tilaa tietopankkimme ja pysy ajan tasalla IT-alan asiantuntemuksesta.

    Tietoa meistä

    The Codest - Kansainvälinen ohjelmistokehitysyritys, jolla on teknologiakeskuksia Puolassa.

    Yhdistynyt kuningaskunta - pääkonttori

    • Toimisto 303B, 182-184 High Street North E6 2JA
      Lontoo, Englanti

    Puola - Paikalliset teknologiakeskukset

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Krakova
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsova, Puola

      Codest

    • Etusivu
    • Tietoa meistä
    • Palvelut
    • Tapaustutkimukset
    • Tiedä miten
    • Työurat
    • Sanakirja

      Palvelut

    • Se neuvoa-antava
    • Ohjelmistokehitys
    • Backend-kehitys
    • Frontend-kehitys
    • Staff Augmentation
    • Backend-kehittäjät
    • Pilvi-insinöörit
    • Tietoinsinöörit
    • Muut
    • QA insinöörit

      Resurssit

    • Faktoja ja myyttejä yhteistyöstä ulkoisen ohjelmistokehityskumppanin kanssa
    • Yhdysvalloista Eurooppaan: Miksi amerikkalaiset startup-yritykset päättävät muuttaa Eurooppaan?
    • Tech Offshore -kehityskeskusten vertailu: Tech Offshore Eurooppa (Puola), ASEAN (Filippiinit), Euraasia (Turkki).
    • Mitkä ovat teknologiajohtajien ja tietohallintojohtajien tärkeimmät haasteet?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Verkkosivuston käyttöehdot

    Tekijänoikeus © 2025 by The Codest. Kaikki oikeudet pidätetään.

    fiFinnish
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek fiFinnish