Git Flow β
π§ Π‘ΡΡΡ β
Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ Π²Π΅ΡΠΎΠΊ Π΄Π»Ρ ΡΠΈΡΡΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ: ΡΠΈΡΠΈ β preprod β master.
π» Π‘ΡΡΡΠΊΡΡΡΠ° Π²Π΅ΡΠΎΠΊ β
master β ΠΏΡΠΎΠ΄, ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· PR
preprod β staging, ΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΌΠ΅ΡΠΆΠ΅ΠΌ
feature/xxx β ΡΠΈΡΠ° ΠΈΠ»ΠΈ ΡΠΈΠΊΡπ» Π Π°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ β
bash
# 1. ΠΠΎΠ²Π°Ρ ΡΠΈΡΠ° β Π²Π΅ΡΠ²ΠΈΡΡ ΠΎΡ master
git checkout master
git pull origin master
git checkout -b feature/add-auth
# 2. Π Π°Π±ΠΎΡΠ°Π΅ΡΡ, ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ ΠΏΠΎ ΡΠ°ΡΠΊΠ°ΠΌ (ΡΠΌ. Π½ΠΈΠΆΠ΅)
# 3. ΠΠΎΡΠΎΠ²ΠΎ β ΠΏΡΡ ΠΈ PR Π² preprod
git push origin feature/add-auth
# GitHub: PR feature/add-auth β preprod
# 4. ΠΡΠΎΠ²Π΅ΡΠΈΠ» Π½Π° staging β PR preprod β masterπ» ΠΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎ ΡΠ°ΡΠΊΠ°ΠΌ β
ΠΠ΄ΠΈΠ½ ΡΠ°ΡΠΊ β ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠ΅ ΠΊΠΎΠΏΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΡΡΡΡ ΡΠΈΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ.
Π€ΠΎΡΠΌΠ°Ρ:
ΡΠΈΠΏ: ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
feat: add user auth
fix: broken redirect after login
chore: update dependencies
docs: add API examples
refactor: extract auth middlewareΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ:
git bisectΠ½Π°ΠΉΠ΄ΡΡ ΡΠ»ΠΎΠΌΠ°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π·Π° ΡΠ΅ΠΊΡΠ½Π΄Ρ- Rollback ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΡΠΊΠ° Π±Π΅Π· ΠΎΡΠΊΠ°ΡΠ° ΡΠΎΡΠ΅Π΄Π½ΠΈΡ
- ΠΡΡΠΎΡΠΈΡ ΡΠΈΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ changelog
ΠΠ»ΠΎΡ ΠΎ:
bash
git commit -m "changes"
git commit -m "fix"
git commit -m "wip"Π₯ΠΎΡΠΎΡΠΎ:
bash
git commit -m "feat: add login form"
git commit -m "feat: add JWT token validation"
git commit -m "fix: redirect loop on /dashboard"π» ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ rebase ΠΏΠ΅ΡΠ΅Π΄ PR β
ΠΡΠΈΠ±ΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΌΠ΅ΡΠΆΠ΅ΠΌ β ΡΠΊΠ»Π΅ΠΈΡΡ WIP ΠΊΠΎΠΌΠΌΠΈΡΡ:
bash
# ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 3 ΠΊΠΎΠΌΠΌΠΈΡΠ°
git rebase -i HEAD~3Π ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅:
pick abc1234 feat: add login form
squash def5678 wip: fix typo β ΡΠΊΠ»Π΅ΠΈΡΡΡ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ
squash ghi9012 fix: forgot semicolon β ΡΠΎΠΆΠ΅β οΈ ΠΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ β
- ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ rebase
masterΠΈpreprodβ ΡΠΎΠ»ΡΠΊΠΎ feature Π²Π΅ΡΠΊΠΈ - Squash ΡΠΎΠ»ΡΠΊΠΎ WIP ΠΊΠΎΠΌΠΌΠΈΡΡ β ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π½Π΅ ΡΡΠΎΠ³Π°ΠΉ
preprodΠ½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ ΠΎΠ΄ΠΈΡΡ Π²ΠΏΠ΅ΡΡΠ΄ master β ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠΉ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ