Tüm Taahhütleri Tek Bir Şekilde Nasıl Eziyorsunuz?

How Do You Squash All Commits One



Git Squash, taahhütlerde bir dizi değişiklik yapmanıza ve ardından bunu tek bir taahhütte birleştirmenize izin veren bir tekniktir. Bir örnek yardımıyla açıklayalım, diyelim ki n sayıda komisyonunuz var ve üzerlerine git squashing uyguladığınızda, tüm 'n' taahhütlerini tek bir taahhütte ezebilir veya sıkıştırabilirsiniz. Git squash, birkaç büyük taahhüdü küçük, tek bir anlamlı taahhüde dönüştürmek için kullanılır. Böylece git günlüğünü daha net hale getirebilirsiniz. Dalları ezme tekniğini kullanarak da birleştirebilirsiniz. Taahhütleri her zaman ezmek ve ana dal veya ana dal ile yeniden temellendirmek en iyi uygulamadır.

Bu makale, tüm taahhütleri git'te tek bir taahhütte nasıl Squash yapacağınızı detaylandıracaktır. CentOS 8 Linux dağıtımında tüm adımları uyguladık.







Squash git ile birleşiyor

Git squashing'i aşağıdaki adımlara uygulayabilirsiniz:



Adım 1: Taahhüdü başlat'ı seçin

Kaç tane taahhütte bulunmanız gerektiğini belirlemek için terminalde aşağıdaki komutu çalıştıracaksınız:



$ git günlüğü





Şimdi, aşağıdaki komutu kullanarak etkileşimli bir yeniden temel oturumu başlatmak için git'i çağıracaksınız:

$ git rebase -i HEAD~N

Yukarıdaki HEAD~N'de, 'N', 'git log' komutundan belirlediğiniz toplam taahhüt sayısıdır. Kabul edelim ki, taahhüt sayısı 4'tür. Şimdi komut aşağıdaki forma dönüşecektir:

$ git rebase -i HEAD~4

Aşağıdaki taahhüt listesi, her birinin kelime seçme ile baktığı terminalde görüntülenecektir.

2. Adım: Seçimi Squash olarak değiştirin

Burada, tüm taahhütleri ezilebilir olarak işaretleyeceğiz, başlangıç ​​noktası olarak kullanılacak ilk taahhüdü bırakın. Bu nedenle, 'i' tuşuna basarak vim düzenleyicisini ekleme moduna değiştirin ve ilk taahhüt dışında tüm seçim taahhütlerini squash'a değiştirin. Şimdi, ekleme modunu değiştirmek için 'Esc' tuşuna basın ve tüm değişiklikleri kaydetmek ve çıkmak için ':wq!' tuşuna basın. Basit metin düzenleyiciyi kullanıyorsanız, 'seç' kelimesini 'squash' olarak değiştirebilir ve değişiklikleri kaydedebilirsiniz. Bundan sonra, terminalde aşağıdaki pencereyi göreceksiniz:

Bu kabuktan ayrılacağınız zaman, terminal penceresinde aşağıdaki mesajları göreceksiniz:

Hepsini ezecekseniz, tüm taahhütlerin terminalde görüntülenecek tek bir taahhüt ifadesinde birleştiğini göreceksiniz:

Çözüm

Git squash'ı kullanarak, birçok taahhüdü daha küçük tek bir taahhüde kolayca sıkıştırabilir veya sıkıştırabilirsiniz. Belge yazım hatalarını düzeltmek için bu tekniği kullanabilirsiniz. Bu yazıda git squash uyguladık. Ayrıca git rebase ve squash komutlarını kullanarak tarihi nasıl temiz yapabileceğimizi gördük.