Sobes.tech
Middle

Jaké vzory práce s Gitem jste použili?

sobes.tech AI

Odpověď od AI

  • Git-flow: Používá se pro projekty s jasně definovaným cyklem vydání. Je vhodný pro správu funkcí, oprav chyb a přípravu vydání. Vytváří větve feature, develop, release, hotfix, master.

  • GitHub flow: Používal se u projektů, kde je priorita časté, malé vydání. Jednoduchý model založený na hlavní větvi (main nebo master) a větvích pro každou funkci nebo opravu, které se ihned slučují do hlavní větve po revizi.

  • Vývoj založený na trunku: Praktikován u projektů, které vyžadují vysokou frekvenci integrace a kontinuální nasazení. Vývojáři provádějí změny přímo v hlavní větvi (trunk) nebo v krátkodobých větvích, které se rychle slučují zpět. Klíčový prvek — Feature Toggles.

Kromě těchto hlavních vzorů se používalo:

  • Rebase vs Merge: V závislosti na situaci a dohodách v týmu se používalo git rebase k udržení čisté historie commitů na lokálních větvích před sloučením, a git merge --no-ff k zachování explicitní historie slučování v hlavní větvi.

    # Příklad rebase
    git checkout feature/nova-funkce
    git pull --rebase origin main 
    # Vyřešení konfliktů, pokud jsou
    git push -f origin feature/nova-funkce 
    # Nebo pull request na sloučení do main
    
    # Příklad merge --no-ff
    git checkout main
    git merge --no-ff feature/nova-funkce -m "Sloučení feature/nova-funkce do main"
    git push origin main
    
  • Squash and Merge: Často používané při slučování větví funkcí do hlavní větve přes Pull Request. Umožňuje sloučit několik commitů z větve funkce do jednoho čistého commitu v hlavní větvi.

    # Příklad squash merge přes rozhraní Git platformy (GitHub, GitLab)
    # Obvykle se provádí při potvrzení Pull Request.
    
  • Cherry-picking: Používá se k přenosu konkrétních commitů mezi větvemi, například pro backportování oprav z hlavní větve do vydávací nebo staging větve.

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