📝 BLOG

Git ve Versiyon Kontrolü: Temel Komutlar ve İş Akışları

Git, modern yazılım geliştirmenin temel aracıdır. Bu rehberde Git'in temel komutlarını, branching stratejilerini ve iş akışlarını anlatıyoruz.

Son güncelleme:

Hazırlayan: Gsetsoft

Git ve Versiyon Kontrolü: Temel Komutlar ve İş Akışları

Git Nedir ve Neden Kullanılır?

Git, dağıtık bir versiyon kontrol sistemidir. Kod değişikliklerini takip eder, farklı versiyonları yönetir ve ekip çalışmasını kolaylaştırır.

Dağıtık yapı: Her geliştirici, tam bir repository kopyasına sahiptir. Bu, offline çalışma ve hızlı işlem yapmayı sağlar.

Branching: Farklı özellikler veya düzeltmeler için ayrı branch'ler oluşturun. Bu, ana kodu (main/master) her zaman stabil tutar.

Merge ve rebase: Branch'leri ana branch ile birleştirin. Merge, commit geçmişi korur. Rebase, lineer bir geçmiş oluşturur.

Temel Git Komutları

git init: Yeni bir repository oluşturun. git clone <url>: Mevcut repository'yi kopyalayın.

git add <file>: Değişiklikleri staging area'ya ekleyin. git add .: Tüm değişiklikleri ekleyin.

git commit -m "mesaj": Staging area'daki değişiklikleri commit'leyin. Anlamlı commit mesajları yazın.

git status: Repository durumunu kontrol edin. git log: Commit geçmişini görüntüleyin.

git diff: Çalışma dizini ile staging area arasındaki farkları görün. git diff --staged: Staging area ile son commit arasındaki farkları görün.

Branching ve Merging

git branch <name>: Yeni branch oluşturun. git checkout <name> veya git switch <name>: Branch'e geçin.

git merge <branch>: Branch'i mevcut branch ile birleştirin. Fast-forward merge veya three-way merge kullanılır.

Merge conflict: Çakışan değişikliklerde manuel çözüm gerekir. Çakışan dosyaları düzenleyin, git add ile işaretleyin, git commit ile tamamlayın.

git branch -d <name>: Branch'i silin. git branch -D <name>: Merge edilmemiş branch'i zorla silin.

Remote Repository İşlemleri

git remote add origin <url>: Remote repository ekleyin. git remote -v: Remote'ları listele.

git push origin <branch>: Lokal değişiklikleri remote'a gönderin. git push -u origin main: Upstream branch ayarlayın.

git pull: Remote değişiklikleri çekin ve merge edin. git fetch: Remote değişiklikleri çekin (merge etmeden).

git push --force: Remote branch'i zorla güncelleyin (dikkatli kullanın). git push --force-with-lease: Daha güvenli force push.

Branching Stratejileri

Git Flow: main (production), develop (development), feature/* (yeni özellikler), release/* (sürüm hazırlığı), hotfix/* (acil düzeltmeler).

GitHub Flow: main branch + feature branch'ler. Her feature branch, pull request ile main'e merge edilir. Basit ve etkili.

Trunk-Based Development: Tek main branch, kısa ömürlü feature branch'ler (1-2 gün). Sürekli entegrasyon (CI/CD) ile birleştirilir.

Seçim kriterleri: Git Flow büyük projeler için, GitHub Flow küçük-orta projeler için, Trunk-Based Development CI/CD olgun ekipler için.

En İyi Uygulamalar

Commit mesajları: Imperative mood kullanın ('Add feature' not 'Added feature'). İlk satır 50 karakter, detay 72 karakter ile sınırlayın.

Atomic commits: Her commit tek bir değişikliği içermeli. Büyük değişiklikleri küçük commit'lere bölün.

Branch isimlendirme: feature/user-authentication, bugfix/login-error, hotfix/security-patch gibi açıklayıcı isimler kullanın.

.gitignore: Gereksiz dosyaları (node_modules, .env, build/) ignore edin. GitHub'ın gitignore şablonlarını kullanın.

Pull request: Kod incelemesi (code review) için pull request kullanın. Her değişiklik en az bir kişi tarafından incelenmeli.

Gizlilik tercihiniz

Temel çerezler güvenli kullanım ve oturum yönetimi içindir. Temel ziyaret sayımı ayrıca yapılır; izin verirseniz ek kullanım analizlerini etkinleştiririz. Çerez Politikası