Git- ja GitHub-ammattilaisen työnkulku · Oppitunti

Trunk-pohjainen kehitys

Tutustukaa trunk-pohjaisen kehityksen malliin, lyhytikäisiin brancheihin ja feature flag -kytkimiin kevyenä vaihtoehtona Gitflow’lle.

Oppitunti 4/413 vaihetta

Trunk-pohjainen kehitys on ilmainen Git- ja GitHub-ammattilaisen työnkulku-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Git- ja GitHub-ammattilaisen työnkulku-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Git- ja GitHub-ammattilaisen työnkulku-kurssilla on yhteensä 4 oppituntia.

Mitä trunk-based development tarkoittaa?

Trunk-based development on haarautumisstrategia, jossa kaikki kehittäjät yhdistävät pieniä muutoksia hyvin usein yhteen jaettuun haaraan (trunkiin, yleensä main).

Siinä suositaan monia pieniä yhdistämisiä pitkäikäisten haarojen sijaan.

Miksi pitkäikäisiä haaroja vältetään?

Viikkoja käytössä olevat haarat erkanevat kauas haarasta main, mikä tekee yhdistämisistä tuskallisia.

  • Ristiriitoja syntyy enemmän, mitä pidempään haara on käytössä
  • Integrointiriski pysyy piilossa loppuun asti
  • Koodikatselujonot kasvavat valtaviksi

Lyhytikäiset haarat

Trunk-based developmentissä haarat ovat käytössä muutaman tunnin tai enintään pari päivää, minkä jälkeen ne yhdistetään takaisin. Luokaa haara, tehkää kohdennettu työ ja yhdistäkää se nopeasti.

git checkout -b add-login
# small focused change
git commit -m 'Add login button'
git push origin add-login

Suora commitoiminen trunk-haaraan

Pienet ja vähäriskiset tiimit voivat joskus commitoida suoraan haaraan main nopean CI-portin läpi. Jokaisen commitin on pidettävä trunk julkaistavissa.

git checkout main
git pull --rebase
git commit -m 'Fix typo in footer'
git push

Feature flagit

Keskeneräiset ominaisuudet yhdistetään silti trunkiin, mutta ne pidetään piilossa feature flagin takana, kunnes ne ovat valmiita. Näin käyttöönotto ja julkaisu voidaan erottaa toisistaan.

if (featureFlags.newCheckout) {
  renderNewCheckout();
} else {
  renderOldCheckout();
}

Jatkuva integraatio on välttämätöntä

Koska kaikki yhdistävät muutoksia jatkuvasti trunkiin, jokaisen pushin automaattiset testit ovat välttämättömiä, jotta main pysyy vihreänä ja käyttöönotettavana.

Trunk-based development ja Gitflow

Gitflow käyttää monia pitkäikäisiä haaroja (develop, release, feature). Trunk-based käyttää yhtä päähaaraa ja pieniä, lyhytikäisiä haaroja.

  • Trunk-based sopii jatkuvaan toimitukseen
  • Gitflow sopii ajastettuihin ja versioituihin julkaisuihin

Release-haarat poikkeuksena

Trunk-based-tiimit voivat luoda lyhytikäisen release-haaran vain version vakauttamista varten ja cherry-pickata korjaukset takaisin siihen.

git checkout -b release/1.4 main

Haarojen pitäminen synkronoituna

Rebasetkaa lyhytikäiset haarat uusimman trunk-version päälle ennen yhdistämistä ristiriitojen minimoimiseksi.

git fetch origin
git rebase origin/main

Nopea yhdistäminen takaisin

Kun CI menee läpi, yhdistäkää lyhytikäinen haara ja poistakaa se. Kierto alkaa uudelleen uudesta haarasta.

git checkout main
git merge --no-ff add-login
git branch -d add-login

Milloin trunk-based kannattaa valita

Valitkaa trunk-based development, kun toimitatte ohjelmistoa usein, CI on vahva ja haluatte välttää merge-helvetin. Se sopii luontevasti yhteen jatkuvan käyttöönoton kanssa.

Pikatesti

Testatkaa, miten hyvin ymmärrätte trunk-based developmentin.

Kertaus

Opitte trunk-based-mallin periaatteet:

  • Yksi jaettu trunk ja useita pieniä, lyhytikäisiä haaroja
  • Feature flagit piilottavat keskeneräisen työn
  • Vahva CI pitää trunkin aina julkaistavissa
  • Malli eroaa Gitflow'n pitkäikäisistä haaroista
Aloita maksutta

Opi Git- ja GitHub-ammattilaisen työnkulku tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Trunk-pohjainen kehitys” ilmainen?

Kyllä – oppitunnin ”Trunk-pohjainen kehitys” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Git- ja GitHub-ammattilaisen työnkulku-kurssin, päivitä CoddyKit PROhon. Git- ja GitHub-ammattilaisen työnkulku-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Trunk-pohjainen kehitys”?

Tutustukaa trunk-pohjaisen kehityksen malliin, lyhytikäisiin brancheihin ja feature flag -kytkimiin kevyenä vaihtoehtona Gitflow’lle. Harjoittelet Git- ja GitHub-ammattilaisen työnkulku-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Git- ja GitHub-ammattilaisen työnkulku-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Git- ja GitHub-ammattilaisen työnkulku-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Trunk-pohjainen kehitys”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Git- ja GitHub-ammattilaisen työnkulku-oppitunnilla?

Kyllä. Jokainen Git- ja GitHub-ammattilaisen työnkulku-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Feature-haarojen työnkulku
  2. Gitflow-työnkulun perusteet
  3. Rebase vai merge
  4. Trunk-pohjainen kehitys
← Takaisin: Git- ja GitHub-ammattilaisen työnkulku