Git Workflow Standards
Branch Stratejisi
code
main (production)
└── develop (integration)
├── feature/user-auth
├── bugfix/login-error
└── hotfix/critical-fix → main'e direkt
Branch Türleri
| Branch | Pattern | Base | Merge To |
|---|---|---|---|
| main | main | - | - |
| develop | develop | main | main |
| feature | feature/[name] | develop | develop |
| bugfix | bugfix/[name] | develop | develop |
| hotfix | hotfix/[name] | main | main + develop |
Branch İsimlendirme
bash
# ✅ Doğru feature/AUTH-123-user-registration bugfix/ORD-456-calculation-error hotfix/critical-auth-bypass # ❌ Yanlış Feature/UserAuth # büyük harf user-registration # type yok feature/my_feature # underscore
Commit Messages
code
<type>(<scope>): <description> [body] [footer]
| Type | Kullanım |
|---|---|
| feat | Yeni özellik |
| fix | Bug fix |
| docs | Dokümantasyon |
| refactor | Refactoring |
| test | Test |
| chore | Build, config |
Örnekler
bash
feat(auth): add password reset flow - Add forgot password endpoint - Add email service integration Closes #123
Workflow
Feature Development
bash
# 1. Develop'dan başla git checkout develop git pull origin develop # 2. Feature branch git checkout -b feature/AUTH-123-user-registration # 3. Çalış, commit (sık, küçük) git add . git commit -m "feat(auth): add registration form" # 4. Push git push -u origin feature/AUTH-123-user-registration # 5. PR oluştur
Hotfix
bash
git checkout main git pull origin main git checkout -b hotfix/critical-auth-bypass # fix & commit git push -u origin hotfix/critical-auth-bypass # PR → main, sonra main'i develop'a merge
PR Guidelines
markdown
## Summary [Kısa açıklama] ## Changes - Change 1 - Change 2 ## Testing - [ ] Unit tests - [ ] Manual testing
PR Kuralları
- •✅ Küçük, focused (max 400 satır)
- •✅ Tek iş per PR
- •✅ CI checks geçmeli
- •❌ WIP merge etme
Merge Stratejisi
Squash and Merge (tercih)
- •Feature branch → tek clean commit
- •Clean history
Sık Kullanılan
bash
git checkout -b feature/name # Yeni branch git branch -d feature/name # Sil (merged) git stash # Sakla git stash pop # Geri al git reset HEAD~1 # Son commit'i geri al