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ışı

Çakışmaları Çözmek

Çakışmalar tek dosyada buluşan iki doğru niyettir. Bu ders taraf seçmek yerine davranış için çözer; kıdemle değil kanıtla.

10 dk okuma

Kazanımlar

  • Çakışma işaretlerini okuyup iki tarafın niyetini yeniden kurmak
  • Davranış için çözüp gözle değil testle kanıtlamak
  • Hangi tarafın yetkili olduğunu söyleyebildiğinde ours/theirs kullanmak
  • Çakışma beklenenden büyükse birleştirmeyi temizce iptal etmek

Neden önemli

İki mühendis aynı varsayılanı değiştirir: biri yavaş bağımlılık için zaman aşımını yükseltir, diğeri olay incelemesinden sonra düşürür. Git durur ve sorar; yanlış yanıt, çözümleyenin son göz gezdirdiğini çıkarır. Çakışma hasarının çoğu dosyada kalan işaretler değildir; incelemeden geçen sessizce yanlış çözümdür, çünkü fark derli görünür. Çakışmalar ikisine de dokunmadan önce iki tarafı anlamayı ister.

Kavramlar

İşaretler dosyayı üç bölgeye ayırır: ours (HEAD, senin taraf), theirs (gelen taraf) ve ikisinin de değiştiği taban; merge conflictStyle diff3 ile görünür. Üçünü de oku. Ours-theirs neyin çarpıştığını söyler; taban her tarafın neyi değiştirmek istediğini söyler. Aynı noktada farklı değerli iki ekleme birleştirme değil karardır: biri seçmelidir ve seçim gerekçesiyle commit mesajına girer.

Davranış için çöz, şu sırayla: iki niyeti de anla, dosyayı birleşik niyeti gerçekleyecek düzenle, tüm işaretleri kaldır, ilgili testleri çalıştır. Testler kanıttır; hiçbir şey çalıştırmadan çözülmüş çakışma düzgün biçimli tahmindir. Takım çarpışan kodu kapsıyorsa yeşil kanıttır. Kapsamıyorsa çözmeden önce birleşik davranışı yakalayan en küçük testi yaz; çözüm yapısı gereği doğrulanmış olur.

git checkout --ours/--theirs (ve merge -Xours/-Xtheirs) tüm tarafı körlemesine seçer. Meşru kullanımları vardır: üretilmiş dosyalar, tedarikçi paketleri ve bir tarafın tanım gereği yetkili olduğu durumlar. Kural katıdır: hangi tarafın neden yetkili olduğunu commit mesajında adlandır. Elle yazılmış koda sessiz -Xtheirs, hiç görmemiş birinin güvenlik düzeltmesini geri alması demektir.

Uygulamalı örnek

İki taraf da yeniden deneme varsayılanını değiştirir. İşaretler açık:

<<<<<<< HEAD MAX_RETRIES = 5 # raised for flaky staging (Aisha) ======= MAX_RETRIES = 2 # lowered after incident review (Bora) >>>>>>> feature/faster-failover

Beklenen prosedür: tabanı oku (3 idi), iki gerekçeyi oku (aksak hazırlık ve olay incelemesi); bunların farklı ortamların farklı değer istediğini fark et: çözüm 5, 2 veya 3 değil, hazırlıkta 5 üretimde 2 veren ortam başına ayardır; ikisi de mesajda adıyla commitlenir. Sayıların birini seçmek birinin haftasını yeniden bozardı. L10 labı bu şekli birebir canlandırır: davranışı koruyan çözüm, test kanıtlı.

Yaygın yanlış hamle

Diğer tarafın satırlarını silerek işaretlerden kurtulmak. İşaretsiz dosyalar bitmiş hissettirir, inceleyenler göz gezdirir; silinen niyet (hedefli düzeltme, olay öğrenmesi, müşteri geçici çözümü) iz bırakmadan gerileme olarak döner. Tembellikten güçlü gerekçesi olmayan silinen her parça şüphelidir; şüphede birleştirmeyi durdur (git merge --abort), diğer yazara sor, birlikte çöz.

Lab ve sonraki adım

L10 labı iki değişiklikli çakışma verir; test kanıtlı, davranışı koruyan çözüm ister. Sırada 3. ders: yayımlanmış hatalar; revert, reset ve kurtarma.

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 depoda dallar arası gerçek içerik çakışması üret (aynı satır, farklı gerekçeli farklı değerler). Çöz, gerekçeyi commit mesajına yaz; birleşik davranışı kanıtlayan testi göster.

Geçme kriterleri

Çakışma gerçek (aynı bölge, iki taraf da anlamlı); çözüm taraf seçimi değil birleşik niyet; commit mesajı gerekçeyi taşıyor; sonucu kanıtlayan test var.

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