Commit
- Okunuşu
- kımit
Kısaca
Commit, Git'te projenin dosyalarının; benzersiz bir kimlik, yazar, zaman damgası ve değişikliği anlatan bir mesajla kaydedilmiş anlık görüntüsüdür.
Git'te commit nedir?
Commit, projenizin belirli bir andaki durumunu kaydeder. Her commit; izlenen dosyaların anlık görüntüsünü, kimin ve ne zaman yaptığını, değişikliği açıklayan bir mesajı ve kendisinden önce gelen commit'e ya da commit'lere giden bir bağlantıyı saklar. Bu bağlantılarla zincirlenen commit'ler projenin geçmişini oluşturur.
Commit yapmadan önce, hangi değişikliklerin dahil edileceğini git add ile hazırlık alanına (staging area) ekleyerek seçersiniz. git commit çalıştırıldığında yalnızca hazırlanan bu değişiklikler kaydedilir. Her commit'e hash adı verilen, uzun bir harf ve rakam dizisinden oluşan benzersiz bir tanımlayıcı atanır; bu sayede o sürümü görüntüleyebilir, karşılaştırabilir veya geri alabilirsiniz.
Commit'ler, bir belgenin geçmişindeki kayıt noktaları gibidir ve her birinin yanında ne yapıldığını anlatan kısa bir not bulunur. İyi commit'ler küçüktür ve tek bir mantıksal değişikliğe odaklanır; mesajı da 'güncellemeler' yerine 'Fix login redirect loop' gibi net olur. Bu, geçmişin okunmasını, incelenmesini ve geri alınmasını kolaylaştırır.
Commit yapmak paylaşmak demek değildir. Bir commit, uzak bir depoya göndermek için git push çalıştırana kadar yalnızca yerel deponuzda durur. Commit sözcüğü veritabanlarında da kullanılır ve orada bir işlemin (transaction) değişikliklerini kalıcı hale getirmek anlamına gelir.
Bir bakışta
Önemli noktalar
- Commit, hazırlanmış değişikliklerin anlık görüntüsü ile yazar, tarih, mesaj ve üst commit gibi meta verilerden oluşur.
- Her commit'i tanımlayan benzersiz bir hash vardır.
- Commit'ler, uzak bir depoya push edilene kadar yerelde kalır.
- Net mesajlı, küçük ve odaklı commit'ler geçmişin anlaşılmasını kolaylaştırır.
Örnek
# See what has changed
git status
# Stage a specific file for the next commit
git add src/login.ts
# Save the staged changes with a descriptive message
git commit -m "Fix login redirect loop"
# View the three most recent commits (short hash and message)
git log --oneline -3
# Reword the last commit's message (only before pushing)
git commit --amend -m "Fix redirect loop after login"Sık sorulan sorular
Git'te bir commit nasıl geri alınır?
Zaten paylaşılmış bir commit'i geri almak için, o commit'in tersini uygulayan yeni bir commit oluşturan git revert <hash> komutunu kullanın. En son yerel commit'inizi, değişiklikleri dosyalarınızda tutarak geri almak için git reset --soft HEAD~1 kullanın.
İyi bir commit mesajı nasıl olmalıdır?
İyi bir commit mesajı, 'Add password reset email' gibi emir kipiyle yazılmış, yaklaşık 50 karakterlik kısa bir özet satırıyla başlar. Daha fazla bağlam gerekiyorsa bir boş satır bırakılır ve değişikliğin neden yapıldığını anlatan daha uzun bir açıklama eklenir.
git commit ile git push arasındaki fark nedir?
git commit, yerel deponuza bir anlık görüntü kaydeder. git push ise yerel commit'lerinizi uzak bir depoya yükler; böylece başkaları da görebilir.
İlgili sayfalar
- GitSürüm Kontrolü, s. 10Git, dosyalardaki değişiklikleri zamanla izleyen ücretsiz, açık kaynaklı dağıtık sürüm kontrol sistemidir; iş birliğini ve hataları geri almayı kolaylaştırır.
- BranchSürüm Kontrolü, s. 2Git'te branch, bir özellik ya da düzeltme üzerinde, birleştirene kadar ana kodu etkilemeden çalışmanızı sağlayan bağımsız bir geliştirme hattıdır.
- MergeSürüm Kontrolü, s. 29Git'te merge, bir branch'teki değişiklikleri başka bir branch'e katarak ayrı geliştirme hatlarını tek ve ortak bir geçmişte yeniden birleştirir.
- RebaseSürüm Kontrolü, s. 33Git'te rebase, bir branch'in commit'lerini başka bir commit'in üzerine yeniden uygular; geçmişi yeniden yazıp merge commit'siz, temiz ve doğrusal kılar.
- Pull RequestSürüm Kontrolü, s. 32Pull request, bir branch'teki değişiklikleri başka bir branch'e birleştirme önerisidir; kod birleşmeden önce ekibe inceleme, tartışma ve test alanı sunar.
- TransactionVeritabanları, s. 36Transaction, tek bir bütün olarak başarılı ya da başarısız olan veritabanı işlemleri grubudur; böylece veri asla yarım kalmış, tutarsız bir durumda bırakılmaz.
- Conventional CommitsSürüm Kontrolü, s. 6Conventional Commits, feat: add search gibi yapılandırılmış commit mesajları için bir şartnamedir; araçlar değişiklik günlüğü üretip sürümü otomatik seçer.
Kaynaklar
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin