Develop Branch — ito ang pangunahing integration branch sa Git Flow, kung saan pinagsasama ang lahat ng natapos na feature branch bago ang paghahanda ng release. Hindi tulad ng main, ang develop ay naglalaman ng mga pinakabago ngunit hindi pa nailalabas na pagbabago — dito nagaganap ang araw-araw na integrasyon ng code mula sa lahat ng developer sa team. Ayon sa datos ng Atlassian, 2024, ang develop ay isang mandatoryong branch sa Git Flow at nagbibigay ng matatag na integration environment para sa team.
Mga Pangunahing Punto
Develop Branch (development branch) — ay isang matagalang branch sa Git Flow na nagsisilbing sentral na node para sa integrasyon ng code mula sa lahat ng developer. Ang mga feature branch ay pinagsasama dito pagkatapos ng completion ng development at pagdaan sa code review.
Ang code sa develop ay palaging nasa estadong handa para gumawa ng release, kahit na hindi pa ito nailalabas sa produksyon. Nangangahulugan ito na lahat ng feature sa develop ay dumaan sa review, testing, at integration checks, ngunit naghihintay pa rin sa kanilang release cycle.
Hindi tulad ng main, kung saan ang bawat bersyon ng code ay isang release, ang develop ay naglalaman ng tuluy-tuloy na daloy ng mga pagbabago. Ang mga commit sa develop ay lumalabas habang ang mga feature branch ay pinagsasama, na maaaring mangyari nang ilang beses sa isang araw.
Ayon sa datos ng Vincent Driessen, 2010, ang develop ay isang pangunahing elemento ng matagumpay na branching model, dahil inihihiwalay nito ang kasalukuyang trabaho mula sa mga bersyong handa nang ilabas.
Ang pag-unawa sa mga pagkakaiba sa pagitan ng develop at main ay kritikal para sa tamang pagtatrabaho sa Git Flow. Ang mga branch na ito ay gumaganap ng iba't ibang function at may iba't ibang kinakailangan sa katatagan.
| Katangian | Develop | Main / Master |
|---|---|---|
| Layunin | Integrasyon ng mga bagong feature | Matatag na release code |
| Katatagan | Mataas (pagkatapos ng testing) | Pinakamataas (produksyon) |
| Dalas ng commit | Araw-araw (pagsasama ng feature) | Bawat release (bawat 1-4 linggo) |
| Pinagmulan ng branch | Mula dito ginagawa ang feature | Mula dito ginagawa ang hotfix |
| Pagsasama | Mula sa feature sa pamamagitan ng PR | Mula sa release sa pamamagitan ng merge |
Ang paghihiwalay ng develop at main ay nagpapahintulot sa team na patuloy na mag-integrate ng bagong code nang hindi isinasakripisyo ang katatagan ng production version. Ang mga developer ay makikita ang kanilang code sa develop kaagad pagkatapos ng approval ng PR, kahit bago pa ang opisyal na release.
Sa modelong Git Flow, ang develop ay sumasakop sa sentral na lugar sa pagitan ng feature branches (pinagmulan ng pagbabago) at release branches (paghahanda para sa paglabas). Ang pag-unawa sa hierarchy na ito ay pundasyon ng epektibong branching.
Ang ganitong istraktura ay ginagarantiyahan na ang develop ay palaging naglalaman ng pinakabagong bersyon ng code kasama ang lahat ng bagong feature, at ang main — ay naglalaman lamang ng na-verify na production code. Ito ay lalong mahalaga para sa mga mobile project na may mahabang review cycle sa App Store at Google Play.
Ang develop ay nagsisilbing sentral na ugnayan sa pagitan ng feature, release, at hotfix branches. Ang pag-unawa sa mga direksyon ng pagsasama ay pundasyon para maiwasan ang mga conflict at pagkawala ng commit.
Kalidad ng code sa develop ay dapat mataas, ngunit hindi absolute. Hindi tulad ng main, kung saan ang bawat error ay nangangahulugang agarang hotfix, ang develop ay nagpapahintulot ng maliliit na kakulangan na aayusin bago ang release.
Minimum na kinakailangan para sa code bago ang pagsasama sa develop:
Ang mga awtomatikong pagsusuri sa CI/CD pipeline ay dapat tumakbo sa bawat push sa develop. Kung ang compilation ay masira, ang responsableng developer ay dapat ayusin ang problema sa loob ng isang oras o ibalik ang kanyang commit.
Ang configuration ng GitHub Actions para sa develop ay ginagarantiyahan na ang bawat PR bago ang pagsasama ay dumadaan sa awtomatikong pagsusuri. Ang karaniwang pipeline ay may kasamang compilation, testing, at linting.
# GitHub Actions — pagsusuri ng develop pagkatapos ng pagsasama
name: Develop CI
on:
pull_request:
branches: [develop]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Unit tests
run: ./gradlew testDebug
- name: Lint
run: ./gradlew lint
- name: Build
run: ./gradlew assembleDebug
Pagsasama sa develop ay dapat sumunod sa mahigpit na mga patakaran upang mapanatili ang katatagan ng integration branch. Ang paglabag sa mga patakarang ito ay humahantong sa mga conflict, sirang compilation, at pagkawala ng oras ng team.
Ang patakaran ng pagiging bago ng PR ay lalong mahalaga. Kung ang feature branch ay ginawa isang linggo na ang nakalipas at ang develop ay nauna ng 50 commit, ang direktang pagsasama ay maaaring humantong sa mga conflict na mas mainayos sa konteksto ng PR, hindi sa develop.
Branch protection rules (mga patakaran sa proteksyon ng branch) — ito ay mga setting sa antas ng GitHub, GitLab, o Bitbucket na pumipigil sa maling pagbabago sa develop. Ginagarantiyahan nila na kahit isang aksidenteng push ay hindi makakasira sa integration branch.
Mga inirerekomendang patakaran sa proteksyon para sa develop:
Ang pag-configure ng proteksyon ng develop ay tumatagal ng 10 minuto, ngunit pumipigil sa mga linggo ng downtime na nauugnay sa sirang integration branch. Para sa mga mobile project na may multi-platform team, ito ay lalong mahalaga.
Isaalang-alang natin ang isang tipikal na araw ng developer: sa umaga ay ina-update niya ang develop, gumagawa ng bagong feature branch, at pagkatapos matapos ang gawain ay pinagsasama ang mga pagbabago pabalik sa develop.
# Umagang synchronisation ng develop
git checkout develop
git pull origin develop
# Paggawa ng bagong feature branch mula sa develop
git checkout -b feature/add-push-notifications
# Pagtatrabaho sa feature...
git add . && git commit -m "Add FCM integration"
# Pag-update ng develop habang nagde-develop
git fetch origin develop
git rebase origin/develop
# Pagkatapos ng approval ng PR — pag-update ng lokal na develop
git checkout develop
git pull origin develop
git branch -d feature/add-push-notifications
Ang command na git pull sa develop ay nagsasagawa ng dalawang operasyon nang sabay: git fetch (kumukuha ng mga bagong commit mula sa server) at git merge (pinagsasama ang mga ito sa lokal na branch). Para sa develop, ito ang karaniwang paraan ng synchronisation.
Kung ang code na sumira sa compilation ay nakapasok sa develop, kailangan kumilos nang mabilis. Bawat oras ng downtime ng develop ay nangangahulugan ng naka-block na trabaho ng buong team ng developer.
Kung ang code na sumira sa compilation ay nakapasok sa develop, gamitin ang git revert para gumawa ng bagong commit na nagbabalik sa mga problematikong pagbabago. Huwag gamitin ang git reset sa develop — ito ay magre-rewrite ng kasaysayan na mayroon na ang ibang mga kalahok.
# Paghahanap ng problematikong commit
git log --oneline develop
# Pagbabalik ng commit sa pamamagitan ng revert (ligtas)
git revert a1b2c3d
# Pagpapadala ng fix sa remote develop
git push origin develop
# Pagtingin ng mga pagbabago sa isang partikular na commit
git show a1b2c3d --stat
Mga Madalas Itanong
Para sa mga proyektong may isa-dalawang developer, ang develop ay madalas na kalabisan — sapat na ang main at feature branches. Sa sandaling lumaki ang team sa 3+ katao, ang develop ay nagiging kinakailangan para ihiwalay ang mga hindi tapos na feature mula sa stable na production code.
Hindi, ang direktang pagsulat sa develop ay ipinagbabawal sa anumang propesyonal na proyekto. Lahat ng pagbabago ay dumadaan sa Pull Request na may code review at awtomatikong pagsusuri. Exception — administratibong pagbabago sa README o CI configuration, ngunit mas mainam na gawin din ang mga ito sa pamamagitan ng PR.
Sa trunk-based development ay walang hiwalay na develop branch — lahat ng developer ay nagtatrabaho sa main na may napakaikling feature branches (1-2 araw). Ito ay alternatibo sa Git Flow, sikat sa DevOps culture na may mataas na antas ng test automation.
Pagkatapos ng bawat release, ang release branch ay pinagsasama pabalik sa develop upang dalhin dito ang lahat ng pag-aayos na ginawa sa proseso ng paghahanda ng release. Kung hindi ito gagawin, ang develop ay mag-iiba mula sa release code, na magdudulot ng mga conflict sa susunod na release.
Kung ang develop ay sira, ang senior developer ay gumagawa ng hotfix branch mula sa huling stable commit, inaayos ang problema, at pinagsasama ang fix nang direkta sa develop sa pamamagitan ng PR na may espesyal na status. Pagkatapos ng pagpapanumbalik, isinasagawa ang pagsusuri ng sanhi ng pagkasira.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din