Develop Branch — detta är den huvudsakliga integrationsgrenen i Git Flow, där alla slutförda feature-grenar slås samman före förberedelse av en release. Till skillnad från main innehåller develop de senaste men ännu inte släppta ändringarna — här sker daglig integrering av kod från alla utvecklare i teamet. Enligt data från Atlassian, 2024 är develop en obligatorisk gren i Git Flow och ger en stabil integrationsmiljö för teamet.
Huvudpunkter
Develop Branch (utvecklingsgren) — en långlivad gren i Git Flow som fungerar som en central nod för integration av kod från alla utvecklare. Feature-grenar slås samman i den efter slutförd utveckling och godkänd code review.
Kod i develop är alltid i ett tillstånd redo för att skapa en release, även om den ännu inte har publicerats i produktion. Detta innebär att alla funktioner i develop har genomgått review, testning och integrationskontroller, men väntar fortfarande på sin releasecykel.
Till skillnad från main, där varje kodversion är en release, innehåller develop en kontinuerlig ström av ändringar. Commits i develop dyker upp allt eftersom feature-grenar slås samman, vilket kan ske flera gånger om dagen.
Enligt data från Vincent Driessen, 2010 är develop ett nyckelelement i en framgångsrik branch-modell, eftersom den separerar pågående arbete från versioner redo för release.
Att förstå skillnaderna mellan develop och main är avgörande för korrekt arbete i Git Flow. Dessa grenar utför olika funktioner och har olika stabilitetskrav.
| Egenskap | Develop | Main / Master |
|---|---|---|
| Syfte | Integration av nya funktioner | Stabil releasekod |
| Stabilitet | Hög (efter tester) | Maximal (produktion) |
| Commitfrekvens | Dagligen (sammanfogning feature) | Per release (var 1-4 vecka) |
| Källa för grenar | Från den skapas feature | Från den skapas hotfix |
| Sammanfogning | Från feature via PR | Från release via merge |
Uppdelningen i develop och main gör att teamet kontinuerligt kan integrera ny kod utan att riskera stabiliteten i produktionsversionen. Utvecklare kan se sin kod i develop direkt efter godkännande av PR, även före den officiella releasen.
I Git Flow-modellen intar develop en central plats mellan feature-grenar (källa för ändringar) och release-grenar (förberedelse för lansering). Att förstå denna hierarki är grunden för effektiv branching.
En sådan struktur garanterar att develop alltid innehåller den senaste kodversionen med alla nya funktioner, och main — endast verifierad produktionskod. Detta är särskilt viktigt för mobila projekt med lång granskningscykel i App Store och Google Play.
Develop fungerar som en central länk mellan feature-, release- och hotfix-grenar. Att förstå sammanfogningsriktningarna är grunden för att förebygga konflikter och förlust av commits.
Kodkvalitet i develop måste vara hög, men inte absolut. Till skillnad från main, där varje fel innebär en brådskande hotfix, tillåter develop mindre brister som kommer att åtgärdas före releasen.
Minimikrav för kod före sammanfogning i develop:
Automatiska kontroller i CI/CD-pipelinen måste köras vid varje push till develop. Om kompileringen går sönder måste den ansvariga utvecklaren åtgärda problemet inom en timme eller återställa sin commit.
Konfiguration av GitHub Actions för develop garanterar att varje PR före sammanfogning genomgår automatisk kontroll. En typisk pipeline inkluderar kompilering, tester och linting.
# GitHub Actions — kontroll av develop efter sammanfogning
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
Sammanfogning i develop måste följa strikta regler för att upprätthålla stabiliteten i integrationsgrenen. Brott mot dessa regler leder till konflikter, trasiga kompileringar och slöseri med teamets tid.
Regeln om PR:s aktualitet är särskilt viktig. Om feature-grenen skapades för en vecka sedan och develop har gått 50 commits framåt, kan direkt sammanfogning leda till konflikter som bättre löses i PR:s sammanhang, inte i develop.
Branch protection rules (grenskyddsregler) — inställningar på GitHub-, GitLab- eller Bitbucket-nivå som förhindrar felaktiga ändringar i develop. De garanterar att även en oavsiktlig push inte bryter integrationsgrenen.
Rekommenderade skyddsregler för develop:
Att konfigurera develop-skydd tar 10 minuter, men förhindrar veckor av stillestånd relaterade till en trasig integrationsgren. För mobila projekt med multiplattformsteam är detta särskilt relevant.
Låt oss titta på en typisk dag för en utvecklare: på morgonen uppdaterar han develop, skapar en ny feature-gren, och efter slutförandet av uppgiften slår han samman ändringarna tillbaka till develop.
# Morgonsynkronisering av develop
git checkout develop
git pull origin develop
# Skapa ny feature-gren från develop
git checkout -b feature/add-push-notifications
# Arbeta med funktion...
git add . && git commit -m "Add FCM integration"
# Uppdatera develop under utveckling
git fetch origin develop
git rebase origin/develop
# Efter godkännande av PR — uppdatera lokal develop
git checkout develop
git pull origin develop
git branch -d feature/add-push-notifications
Kommandot git pull i develop utför två operationer samtidigt: git fetch (hämtar nya commits från servern) och git merge (slår samman dem med den lokala grenen). För develop är detta standardsättet för synkronisering.
Om kod som bröt kompileringen kom in i develop måste man agera snabbt. Varje timmes stillestånd för develop innebär blockerat arbete för hela utvecklarteamet.
Om kod som bröt kompileringen kom in i develop, använd git revert för att skapa en ny commit som ångrar de problematiska ändringarna. Använd inte git reset i develop — detta skriver om historiken som redan finns hos andra deltagare.
# Hitta problematisk commit
git log --oneline develop
# Ångra commit via revert (säkert)
git revert a1b2c3d
# Skicka korrigering till fjärr-develop
git push origin develop
# Visa ändringar i en specifik commit
git show a1b2c3d --stat
Vanliga frågor
För projekt med en till två utvecklare är develop ofta överflödig — main och feature-grenar räcker. Så snart teamet växer till 3+ personer blir develop nödvändig för att isolera ofullständiga funktioner från stabil produktionskod.
Nej, direkt skrivning till develop är förbjuden i alla professionella projekt. Alla ändringar går via Pull Request med code review och automatiska kontroller. Undantag — administrativa ändringar av README eller CI-konfiguration, men även dessa är bättre att göra via PR.
I trunk-based development finns det ingen separat develop-gren — alla utvecklare arbetar i main med mycket korta feature-grenar (1-2 dagar). Detta är ett alternativ till Git Flow, populärt i DevOps-kultur med hög nivå av testautomatisering.
Efter varje release slås release-grenen tillbaka i develop för att föra in alla korrigeringar som gjorts under releaseförberedelsen. Om detta inte görs kommer develop att skilja sig från releasekoden, vilket orsakar konflikter vid nästa release.
Om develop är trasig skapar en senior utvecklare en hotfix-gren från den senaste stabila commiten, åtgärdar problemet och slår samman korrigeringen direkt i develop via en PR med särskild status. Efter återställning genomförs en analys av orsaken till felet.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också