vuralserhat86

git_workflow

27
10
# Install this skill:
npx skills add vuralserhat86/antigravity-agentic-skills --skill "git_workflow"

Install specific skill from multi-skill repository

# Description

Branch stratejisi, commit conventions, merge conflict çözümü ve Git best practices rehberi.

# SKILL.md


name: git_workflow
router_kit: FullStackKit
description: Branch stratejisi, commit conventions, merge conflict çözümü ve Git best practices rehberi.
metadata:
skillport:
category: development
tags: [architecture, automation, best practices, clean code, coding, collaboration, compliance, debugging, design patterns, development, documentation, efficiency, git, git workflow, optimization, productivity, programming, project management, quality assurance, refactoring, software engineering, standards, testing, utilities, version control, workflow] - workflow


🌿 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

Type Açıklama
feat Yeni özellik
fix Bug düzeltme
docs Dokümantasyon
style Formatting (kod değişikliği yok)
refactor Refactoring
perf Performans iyileştirme
test Test ekleme/düzeltme
chore Build, CI, dependencies
ci CI configuration
revert Revert 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?

Durum Strateji
Public/shared branch Merge
Local feature branch Rebase
Main'e feature merge Squash merge
Hotfix Merge

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şama Doğrulama
1 Main branch her an deploy edilebilir (Green) durumda mı?
2 git log --oneline okunduğunda bir hikaye anlatıyor mu?
3 Conflict çözülürken kod kaybı yaşanma riski var mı?

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.