🌿 Git Workflow

← Back to skills

> Branch stratejisi, commit conventions ve Git best practices rehberi.

Category: DevOps & Automation
Repo: vuralserhat86-antigravity-agentic-skills
Path: skills/git_workflow/SKILL.md
Updated: 1/3/2026, 12:20:04 PM

AI Summary

> Branch stratejisi, commit conventions ve Git best practices rehberi. It is useful for CI/CD pipelines, infrastructure as code, deployment automation, monitoring, and DevOps workflows. Source: vuralserhat86-antigravity-agentic-skills (skills/git_workflow/SKILL.md).

🌿 Git Workflow

Branch stratejisi, commit conventions ve Git best practices rehberi.


📋 İçindekiler

  1. Branching Stratejileri
  2. Commit Conventions
  3. Merge vs Rebase
  4. Conflict Resolution
  5. Useful Commands

1. Branching Stratejileri

Git Flow

main (production)
  └── develop
        ├── feature/user-auth
        ├── feature/payment
        └── release/v1.2.0
              └── hotfix/critical-bug

GitHub Flow (Önerilen - Basit)

main (always deployable)
  ├── feature/add-login
  ├── fix/button-style
  └── chore/update-deps

Branch Naming

# Feature
feature/user-authentication
feature/JIRA-123-add-payment

# Bug Fix
fix/login-redirect-issue
bugfix/memory-leak

# Hotfix (production)
hotfix/critical-security-patch

# Other
chore/update-dependencies
refactor/auth-module
docs/api-documentation

2. Commit Conventions

Conventional Commits

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

Types

TypeAçıklama
featYeni özellik
fixBug düzeltme
docsDokümantasyon
styleFormatting (kod değişikliği yok)
refactorRefactoring
perfPerformans iyileştirme
testTest ekleme/düzeltme
choreBuild, CI, dependencies
ciCI configuration
revertRevert commit

Örnekler

feat(auth): add OAuth2 login support

fix(api): resolve null pointer in user endpoint
Closes #123

refactor!: drop support for Node 14
BREAKING CHANGE: Minimum Node version is now 18

chore(deps): update lodash to 4.17.21

Commit Message Rules

✅ DOĞRU:
- Imperative mood: "Add feature" (not "Added" or "Adds")
- 50 karakter başlık limiti
- Büyük harfle başla, nokta koyma
- Açıklayıcı body (neden, nasıl)

❌ YANLIŞ:
- "Fixed stuff"
- "WIP"
- "asdfasdf"
- "Updated code"

3. Merge vs Rebase

Merge

# Feature branch'i main'e merge
git checkout main
git merge feature/user-auth

# Merge commit oluşturur
# History korunur

Rebase

# Feature branch'i main üzerine rebase
git checkout feature/user-auth
git rebase main

# Linear history
# Commit'ler yeniden yazılır

Ne Zaman Hangisi?

DurumStrateji
Public/shared branchMerge
Local feature branchRebase
Main'e feature mergeSquash merge
HotfixMerge

Squash Merge

git checkout main
git merge --squash feature/user-auth
git commit -m "feat(auth): add user authentication"

4. Conflict Resolution

Conflict Markers

<<<<<<< HEAD
Current branch content
=======
Incoming branch content
>>>>>>> feature-branch

Resolution Steps

# 1. Conflict'leri gör
git status

# 2. Dosyaları düzenle (markers kaldır)

# 3. Çözümlenmiş dosyaları stage
git add <resolved-file>

# 4. Merge/rebase devam
git merge --continue
# veya
git rebase --continue

VS Code ile

# Accept Current Change
# Accept Incoming Change
# Accept Both Changes
# Compare Changes

Abort

git merge --abort
git rebase --abort

5. Useful Commands

History

# Güzel log
git log --oneline --graph --all

# Son 10 commit
git log -10 --oneline

# Dosya history
git log --follow -p -- path/to/file

Undo

# Son commit'i geri al (değişiklikleri koru)
git reset --soft HEAD~1

# Son commit'i tamamen geri al
git reset --hard HEAD~1

# Commit'i revert et (yeni commit oluştur)
git revert <commit-hash>

# Staged dosyayı unstage
git restore --staged <file>

# Değişiklikleri geri al
git restore <file>

Stash

# Değişiklikleri sakla
git stash

# Mesajla sakla
git stash push -m "WIP: feature X"

# Stash listesi
git stash list

# Son stash'i uygula
git stash pop

# Belirli stash'i uygula
git stash apply stash@{2}

Interactive Rebase

# Son 3 commit'i düzenle
git rebase -i HEAD~3

# Açılan editörde:
pick abc1234 First commit
squash def5678 Second commit  # Öncekiyle birleştir
reword ghi9012 Third commit   # Mesajı değiştir

Cherry Pick

# Belirli commit'i al
git cherry-pick <commit-hash>

# Birden fazla
git cherry-pick <hash1> <hash2>

Git Workflow v1.1 - Enhanced

🔄 Workflow

Kaynak: Atlassian Git Workflows & Trunk Based Development

Aşama 1: Branching

  • Strategy: Çoğu ekip için "Trunk Based Development" (kısa ömürlü feature branch'ler) kullan.
  • Naming: feat/ fix/ ön eklerini standartlaştır.
  • Lifetime: Branch ömrü 2 günü geçmemeli. Geçiyorsa parçala.

Aşama 2: Committing

  • Atomic: Bir commit sadece bir şeyi değiştirmeli.
  • Message: feat(auth): add login formatını (Conventional Commits) zorunlu tut.
  • Verification: pre-commit hook ile linter/test çalıştır.

Aşama 3: Merging

  • Review: Code Owner onayı olmadan merge etme.
  • Method: Geçmişi temiz tutmak için Squash Merge tercih et.
  • Cleanup: Merge sonrası branch'i sil.

Kontrol Noktaları

AşamaDoğrulama
1Main branch her an deploy edilebilir (Green) durumda mı?
2git log --oneline okunduğunda bir hikaye anlatıyor mu?
3Conflict çözülürken kod kaybı yaşanma riski var mı?

Related skills