Sobes.tech
Middle

Aké vzory práce s Git ste použili?

sobes.tech AI

Odpoveď od AI

  • Git-flow: Používa sa pre projekty s jasne definovaným cyklom vydania. Je vhodný na správu funkcií, opráv chýb a prípravu na vydanie. Vytvára vetvy feature, develop, release, hotfix, master.

  • GitHub flow: Používal sa v projektoch, kde je priorita časté, malé vydania. Jednoduchý model založený na jednej hlavnej vetve (main alebo master) a vetvách pre každú funkciu alebo opravu, ktoré sa okamžite zlúčia do hlavnej vetvy po revízii.

  • Vývoj založený na trunk: Praktizovaný v projektoch, ktoré vyžadujú vysokú frekvenciu integrácie a kontinuálne nasadzovanie. Vývojári robia zmeny priamo v hlavnej vetve (trunk) alebo v krátkodobých vetvách, ktoré sa rýchlo zlúčia späť. Kľúčový prvok — Feature Toggles.

Okrem týchto hlavných vzorov sa používali:

  • Rebase vs Merge: V závislosti od situácie a dohôd v tíme sa používalo git rebase na udržanie čistej histórie commitov v lokálnych vetvách pred zlúčením, a git merge --no-ff na zachovanie explicitnej histórie zlúčení v hlavnej vetve.

    # Príklad rebase
    git checkout feature/nova-funkcia
    git pull --rebase origin main 
    # Riešenie konfliktov, ak sú
    git push -f origin feature/nova-funkcia 
    # Alebo pull request na zlúčenie do main
    
    # Príklad merge --no-ff
    git checkout main
    git merge --no-ff feature/nova-funkcia -m "Zlúčenie feature/nova-funkcia do main"
    git push origin main
    
  • Squash and Merge: Často sa používa pri zlúčení funkčných vetiev do hlavnej vetvy cez Pull Request. Umožňuje zlúčiť viacero commitov z vetvy funkcie do jedného čistého commitu v hlavnej vetve.

    # Príklad squash merge cez rozhranie Git platformy (GitHub, GitLab)
    # Zvyčajne sa vykonáva pri potvrdení Pull Request.
    
  • Cherry-picking: Používa sa na presun konkrétnych commitov medzi vetvami, napríklad na backportovanie opráv z hlavnej vetvy do vydávacej alebo staging vetvy.

    # Príklad cherry-pick
    git checkout release/v1.2
    git cherry-pick <commit_hash>