Git İle Aynı Dosyada Çalışmak

Ata Günay
Fazla
Published in
3 min readAug 13, 2022

Bu yazımda ekip arkadaşlarınız ile aynı dosyada çalışırken Git’ in nasıl davrandığını açıklamaya çalıştım.

  1. Çalışma Ortamının Kurulması ve Tanıtımı

İlk olarak bir repo oluşturdum. Daha sonrasında “main” branchine bir fonksiyon ekledim ve bu branchten 2 adet yeni branch çıktım. Bunlar “work1” ve “work2”.

Main: Ana projenin bulunduğu branch. PR isteklerinin hedefi bu branchtir.

Work1: 1. Kişinin çalıştığı branch.

Work2: 2. Kişinin çalıştığı branch.

Böylelik şu an tüm branchlerde aynı satırlarda aynı kod parçacıkları yer almaktadır.

2. Senaryonun oluşturulması

Kurduğumuz senaryoda farklı kişiler farklı branchlerde aynı satırları etkileyecek kodlar yazacaklar ve main branchine bir pr isteğinde bulunacaklar.

Work1 ve Work2 branchinde aynı satırları etkileyen farklı kodlar yazdık. Şimdi sıra pr açmakta.

3. PR Açılışları

İlk önce Work1' den Main’ e bir pr açıyorum.

Daha sonra Work2' den Main’e yeni bir pr açıyorum.

İki pr isteğimiz de başarılı bir şekilde açılmıştır ve şu an için her iki PR’ da Main’e mergelenebilir.

4. PR Merge İşlemleri

Şimdi ilk açtığımız PR’ı (work1 -> main) mergeleyelim.

İşlem başarılı bir şekilde gerçekleştirildi. Hemen Main branchini kontrol edelim.

Gördüğünüz üzere değişiklikler başarılı bir şekilde geldi. Şimdi sıra 2.PR’ ın merge işleminde.

PR’ı açtığımızda merge işlemimizi engelleyen bir uyarı ile karşılaştık. Çünkü ilk açtığımız PR mergelendikten sonra artık Work2 branchi ile Main branchı arasında bir conflict çıktı. Bu conflicti çözmeden merge işlemini gerçekleştiremeyiz. Peki bakalım bu conflict nerede çıkmış.

Aynı satırlarda bulunan farklı kodlar bizim karşımıza conflict olarak çıktı.

4. Conflictlerin çözülmesi

Direkt github üzerinde conflictleri çözebilirsiniz. Fakat bu çözüm aslında pek önerilmeyen bir çözümdür. Yaptığınız değişikliklerden sonra 5. 7. ve 9. satırı silmeniz ve kaydetmeniz conflictleri çözecektir. Karmaşık kodlarda ise bir editör desteğine ihtiyaç duyabilirsiniz. Bunun için:

a. “git pull origin main” ile main branchinin en güncel halini alalım.

b. “git checkout work2” ile conflict çıkan branche geçelim.

c. “git merge main” ile branchimizi main ile birleştirmeye çalışalım

Bu sırada editörümüzde yukarıdaki dosyanın aynısı açılacaktır. Conflictleri çözelim.

d. “git add .” ile yaptığımız bütün değişiklikleri kayıt edelim.

e. “ git commit -m ‘solved conflicts’ ” ile commit mesajımızı oluşturalım.

f. “git push origin work2” ile Work2 branchimizi güncelleyelim.

Artık PR’ın merge işlemi için hazırız. Github’ da PR sayfalarını açalım ve açık olan PR’ımızı mergeleyelim.

--

--