Dünyanın en detaylı ücretsiz FDE + DevOps kütüphanesi: 140 üzeri ders, 70 üzeri lab ve 80 uzun yazı, İngilizce ve Türkçe. Öğrenmeye başla →

DevOps Foundations · Modül 4: Git ve ekip çalışma akışı

Commit, Dal ve Birleştirme

Paylaşılan tarih ekibin ortak hafızasıdır. Bu ders commitleri küçük, dalları ucuz yapar; birleştirme sıkıcı kalır.

10 dk okuma

Kazanımlar

  • Küçük, adlı ve bağımsız geri alınabilir commitler yazmak
  • Paylaşılan kodun uzun ömürlü çatalları yerine kısa özellik dallarını seçmek
  • Hızlı-ileri ile gerçek birleştirmeyi tahmin ederek korkusuz birleştirmek
  • git log çıktısını liste değil projenin hafızası olarak okumak

Neden önemli

Sürüm bozulur ve ekip neden olan tek değişikliği on dakikada çıkarmalıdır. Küçük adlı commitlerle yanıt tek revert; beş özelliği karıştıran haftalık mega commitlerle yanıt baskı altında ameliyattır. Dal ve commit disiplini bürokrasi değildir; kurtarmayı proje yerine komut yapan mekanizmadır.

Kavramlar

Commit; anlık görüntü, mesaj ve ebeveyndir. Küçük commitler üç nedenle kazanır: temiz geri alınır (bir değişiklik girer, bir çıkar), hızlı incelenir (inceleyen tek fikir tutar, beş değil) ve hassas ikiye bölünür (git bisect suçlu değişikliğe düşer, suçlu aya değil). Atomik, her committe ağacın derlenip testlerin geçmesi demektir; ortadaki kırmızı commit ikiye bölme ve suçlamayı sonraki herkes için zehirler.

Dallar taşınabilir göstergelerdir, tasarım gereği ucuzdur. Özellik dalı tek fikri hazır olana kadar yalıtır; main her an sürülebilir kalır. Kısa ömürlü dallar (saatler-günler) küçük çakışmalarla birleşir; haftalarca yaşayan dallar birleşme toplantılı olaya dönüşene kadar ayrışır. Erken ve sık birleştirme coşku değil, çakışma faizini biriktirmeden günlük ödemektir.

Birleştirmeler iki şekillidir. Hızlı-ileri, ayrışma yokken göstergeyi taşır: doğrusal, sessiz, birleştirme commit yok. Gerçek birleştirme iki tarihi, birleştirme kararını kaydeden commit ile birleştirir. İkisi ahlaken üstün değildir; ekibin geleneği karar verir. Önemli olan ne yapacağını önceden bilmektir: git log --graph --oneline hareket öncesi şekli gösterir; --no-ff ve --ff-only ummak yerine politikayı dayatır.

Uygulamalı örnek

Temiz özellik birleştirme, yapmadan önce okunur:

$ git log --graph --oneline -5 9f2c1ab (feature/rate-limit) Add token bucket check 4d6e802 Add bucket config with default 100/min | 7a11b90 (main) Fix healthcheck path |/ 2c03dd1 Release 1.4.0 $ git checkout main && git merge --no-ff feature/rate-limit -m "Merge rate limiting (100/min default)"

Beklenen okuma: grafik çatallanmadan beri her yanda tam iki commit gösterir; birleştirme tek fikri tek düzeltmeyle birleştirir, birleştirme commit özelliği adlandırır. Grafik üç haftada otuz commit gösterseydi doğru hamle durup bölmek olurdu, birleştirip dua etmek değil. Sonrası doğrulanır: ağaç derlenir, testler geçer, log iki çizgiyi birleştiren birleştirmeyi gösterir.

Yaygın yanlış hamle

Gün sonu her şeyi fixes ve updates mesajlarıyla commitlemek. Bu commitler geri alınamaz (her şeyin hangi parçası?), incelenemez (fikir ne?), ikiye bölünemez (suçlu değişiklik paketin içinde saklanır). Fikir tamamlanınca commitlenir; yabancının harekete geçebileceği mesajla, günde beş commit bile olsa. Sıklık özelliktir.

Lab ve sonraki adım

L10-L12 lablarının tamamı bu şekli varsayar: küçük commitler, kısa dallar, okunur grafikler. Sırada 2. ders: iki tarih satırı tek dosyada çarpışınca; çakışmalar.

Mini kontrol

4 soruluk isteğe bağlı öz kontrol. Yanıtlar cihazından çıkmaz, saklanmaz ve hiçbir değerlendirmeye sayılmaz.

Ders geri bildirimi

Henüz yayında geri bildirim yok.

Geri bildirim yazmak için giriş yap ve dersi tamamla.

Kaynaklar

Alıştırma

Deneme depo aç; ikişer küçük commitli iki dal yap; --no-ff ile birleştir; git log --graph çıktısından sonuç grafiğini çiz. Sonra main oynamasaydı aynı birleştirmenin hızlı-ileri gideceğini göster.

Geçme kriterleri

İkişer atomik commitli iki dallı deneme depo; adlandıran mesajlı birleştirme commit mevcut; grafik doğru çizilmiş; hızlı-ileri koşulu doğru belirtilmiş.

İlerlemeni kaydetmek için giriş yapÜcretsiz hesap: yalnızca ders ilerlemen ve quiz sonuçların saklanır.