Çakışmalar (Conflicts)

cakismalar-conflicts (büyük resim için tıklayın)

Çakışmalar (Conflicts)

İki branch'te de aynı dosyayı değiştirmiş olsaydık ne olurdu? Bir branch'te değişiklik yaparken, takım arkadaşınız farklı bir branch'te aynı dosyalarda değişiklik yapabiliyor. İşte bu durumlarda çakışma (conflicts) ortaya çıkıyor.

Örnek olarak buyuk-harf branch'inde lib.php dosyası boş olarak mevcut olsun. Bu dosyaya (branch geçişi yapıp)

  • echo strtoupper($param);

yazılsın ve commit edilsin. Sonrasında trim branch'inde lib.php dosyasını (trim branch'ine geçiş yapılsın)

  • echo strtoupper(trim($param));

olarak güncelleyelim ve değişiklikleri commit edelim. Görüldüğü üzere iki farklı branch'de aynı dosya (lib.php) üzerinde aynı satırı değiştirmiş olduk. Bu iki branch'i de master branch'ine aktarmaya (merge) çalışalım. master branch'ine geçiş yapılıp (git checkout master)

  • git merge trim

komutu kullanılsın. Sonrasında da buyuk-harf branch'ini merge edelim.

  • git merge buyuk-harf

İşte tam bu noktada çakışma hatası alınmış olacak ve otomatik birleştirme (automatic merge) edilemeyecek. lib.php dosyası incelenecek olduğunda <<<<<<< HEAD kod bloğu ======= kod bloğu >>>>>>> içeriği görüntülenecek.

  •  <<<<<<< HEAD ile ======= arasındaki kısım master branch'in şu anki halini gösterir,  
  • ======= ile >>>>>>> arasındaki kısım ise buyuk-harf (yani merge etmek istediğimiz ve sonrasında hata aldığımız) branch'indeki halini gösterir. 

Bu noktada manuel bir birleştirme yapmamız gerekiyor. Kodları inceleyip, işaretleri (<, =, >) silip dosyamızı istediğimiz hale getirdikten sonra çakışma (conflicts) çözülmüş olacak. Tabii sonrasında 

  • git add lib.php 
  • git commit -m “cakisma halledildi”

komutlarını kullanmayı unutmuyoruz.

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Beğeni


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)