Sobes.tech
Middle

Git менен иштөө үлгүлөрү кандай?

sobes.tech AI

AIден жооп

  • Git-flow: Колдонуучу долбоорлор үчүн колдонулган, так чыгаруу цикли бар. Функционалдык түзөтүүлөрдү, каталарды оңдоону жана чыгаруу даярдоону башкаруу үчүн ыңгайлуу. feature, develop, release, hotfix, master тармактарын түзөт.

  • GitHub flow: Тармактардын тез, кичинекей чыгарууларына артыкчылык берилген долбоорлор үчүн колдонулган. Бир негизги тармак (main же master) жана ар бир функция же оңдоого арналган тармактардын негизделген жөнөкөй модел, алар ревьюдан кийин түздөн-түз негизги тармакка бириктирилет.

  • Trunk-based development: Жогорку ылдамдыктагы интеграция жана үзгүлтүксүз жайгаштыруу талап кылынган долбоорлор үчүн колдонулган. Дамытучулар түздөн-түз негизги тармакта (trunk) же кыска мөөнөттүү тармактарда өзгөртүүлөрдү киргизишет, алар тез арада кайра бириктирилет. Ачкыч элемент — Feature Toggles.

Бул негизги үлгүлөрдөн тышкары, колдонулган:

  • Rebase vs Merge: Тармактардын жана командадагы макулдашууга жараша, git rebase колдонулган, ал жергиликтүү тармактарда таза тарыхты сактоо үчүн, жана git merge --no-ff — негизги тармакта айкын бириктирүүнү сактоо үчүн.

    # Rebase мисалы
    git checkout feature/nova-feature
    git pull --rebase origin main 
    # Каршылык чыкса, чечүү
    git push -f origin feature/nova-feature 
    # же Merge Request аркылуу mainке бириктирүү
    
    # Merge --no-ff мисалы
    git checkout main
    git merge --no-ff feature/nova-feature -m "Merge feature nova-feature into main"
    git push origin main
    
  • Squash and Merge: Фичалардын тармактарын негизги тармакка бириктирүүдө кеңири колдонулат, көбүнчө Pull Request аркылуу. Бул бир нече коммитти бир таза коммитке айландырууга мүмкүндүк берет:

    # Git платформаларында (GitHub, GitLab) интерфейс аркылуу squash merge мисалы
    # Адатта, Pull Request бекитилгенде ишке ашырылат.
    
  • Cherry-picking: Тармактар ​​арасында конкреттүү коммиттерди которуу үчүн колдонулат, мисалы, негизги тармактан чыгаруу же тестирлөө тармактарына оңдоолорду бекитүү үчүн:

    # Cherry-pick мисалы
    git checkout release/v1.2
    git cherry-pick <commit_hash>