#Git-1: Yanlış branch, doğru commit

Enes Bayraktar
SDTR
Published in
2 min readOct 3, 2023

Selamlar,

Git için, geliştirme sürecinde karşımıza çıkabilecek hatalarla alakalı yaşanmış hikayeleri baz alıyor, bu hataları senaryolaştırıyor ve çözümleriyle sizlere aktarıyorum.

Temsili terminal imajı

Ortalama bir şirkette geliştirici olduğunuzu varsayalım. Ürün geliştirmeciler tarafından bir özellik sizlere iletildi ve bununla alakalı branch açıldı.

Siz, size atanan TASK-XX branch’nde yeni özellik için çalışmaya başladınız. Bu branch özelinde istenilenleri uygulamanıza eklediniz.

Takım arkadaşınız master’a yeni güncellemeler gönderdi ve siz de geri kalmamak adına branch’i master’a pull almak zorunda kaldınız.

Dikkatiniz dağıldı ve yanlışlıkla TASK-XX için hazırladığınız kodları master’a gönderdiniz.

Temsili branch listesi imajı

Kodlarınız iletildi ve uygulama yeni kodlara göre build alındı. Yayına çıkıldı, ve bu süreç isteminiz dışında tamamlandı.

Bu süreçte yapmanız gerekenler:

  • Yanlış gönderilmiş kodu master’dan kaldırmak (revert) ve master’da güncellediğiniz kodları TASK-XX’e taşımak.

1. Adım: Uygulamayı eski major haline döndür

Bu adımda eski major versiyonu bulabilmemiz için merge edilmiş pr’lara bakmamız gerekiyor.

En son merge edilmiş pr bizim için mantıken son major versiyonumuz oluyor. Bu listeyi görüntülemek adına git log --oneline komutunu kullanabiliriz.

Örnek git log — oneline çıktısı

Bu durumda dikkatlice yapmamız gereken tek işlem kalıyor. major versiyondan sonra eklenmiş olan commitleri saymak.

Örneklemem gerekirse, dört commit TASK-XX’e gitmesi gerekirken master’a iletildiğinde sizler git reset --hard HEAD~4 komutunu kullanıp repository’i dört commit geriye çekmiş olursunuz.

Bu commitler master’da hiç varolmayacağı için git push origin master --force komutu aracılığıyla master branchini eski haline getirip eklenmiş olan tüm commitleri yok etmiş oluyoruz.

2. Adım: TASK-XXX’e kendine ait kodları yükleyelim

Güncel kaynak kodumuzun bir kopyasını almıştık. Bu kopyayı direkt olarak TASK-XX’e kopyalarsak eğer tüm dosya değişikliklerimiz geriye gelecektir.

Bu değişiklikleri istediğiniz gibi commit’leyerek aslında olması gereken yapıya tekrardan kavuşmuş oluruz.

Yeni bir tarz

Yazılarımda yeni bir tarz denemekteyim, daha çok tecrübelerimi aktardığım eğlenceli ve bol acemilik içeren yazılarla sizlerle olacağım.

Olumlu, olumsuz görüşleriniz için enes.bayraktar@outlook.com.tr adresinden bana ulaşabilirsiniz.

--

--

Enes Bayraktar
SDTR
Writer for

Software Developer — The average person who fulfills his responsibilities on time and is capable of self-education.