Git'te Gelişmiş Kavramlar: Güçlü Özellikleri ve Teknikleri Keşfetme

Rebasing

Yeniden temellendirme, taahhüt geçmişini değiştirerek değişiklikleri bir şubeden başka bir şubeye dahil etmenize olanak tanır. Kaynak daldaki taahhütleri hedef dalda tekrar oynatır. Bu, daha temiz ve daha doğrusal bir taahhüt geçmişi sağlar.

Örnek: Diyelim ki bir özellik dalınız var feature-branch ve daldaki en son değişiklikleri dahil etmek istiyorsunuz main. Aşağıdaki komutu kullanabilirsiniz:

git checkout feature-branch  
git rebase main  

main Bu, şubeden gelen taahhütleri feature-branch. Tüm çakışmaların yeniden temel oluşturma işlemi sırasında çözülmesi gerekecektir.

 

Stashing

Saklama, işleme alınmaya hazır olmayan mevcut değişikliklerinizi kaydetmenize ve geçici olarak temiz bir çalışma dizinine geri dönmenize olanak tanır. Bu, şu anda üzerinde çalıştığınız değişiklikleri gerçekleştirmeden farklı bir şubeye geçmeniz veya farklı bir özellik üzerinde çalışmanız gerektiğinde kullanışlıdır.

Örnek: Diyelim ki bir feature şubesi üzerinde çalışıyorsunuz ve bazı değişiklikler yaptınız fakat başka bir şubeye geçmeniz gerekiyor. Değişikliklerinizi depolamak için aşağıdaki komutları kullanabilirsiniz:

git stash

Yeni şubeye geçtikten sonra, saklanan değişiklikleri aşağıdakileri kullanarak uygulayabilirsiniz:

git stash apply

 

Git Hooks

Git Hooks gibi belirli Git olayları tarafından tetiklenen betiklerdir. Bunlar, belirli eylemleri otomatikleştirmenize veya iş akışınızda belirli kuralları uygulamanıza olanak tanır.

Örnek: Kabul etmeden önce kodunuz üzerinde bir linter çalıştırmak istediğinizi varsayalım. Linter'i tetikleyen ve herhangi bir astarlama hatası olması durumunda kesinleştirmeyi önleyen bir ön işleme kancası komut dosyası oluşturabilirsiniz.

 

Git Submodule

Git Submodule ana deponuza bir alt dizin olarak başka bir Git deposu eklemenize izin verir. Bu, harici kitaplıklara veya bileşenlere bağlı bir projeniz olduğunda kullanışlıdır.

Örnek: Belirli bir kitaplık gerektiren bir projeniz var. Kütüphanenin kodunu deponuza kopyalamak yerine, onu bir alt modül olarak ekleyebilirsiniz. Bu sayede kütüphane kodunu ayrı tutabilir ve gerektiğinde kolayca güncelleyebilirsiniz.

 

Git Revert and Git Reset

Git Revert orijinal taahhütte yapılan değişiklikleri geri alan yeni bir taahhüt oluşturarak önceki bir taahhüdü geri alır. Git Reset, diğer yandan, dal işaretçisini farklı bir işleme taşımanıza izin vererek, taahhütleri kesinleştirme geçmişinden etkili bir şekilde atar.

git revert HEAD Örnek: Son taahhüdü geri almak istiyorsanız, son taahhütte yapılan değişiklikleri geri alan yeni bir taahhüt oluşturmak için kullanabilirsiniz. Son taahhüdü tamamen atmak istiyorsanız, git reset HEAD~1 şube işaretçisini bir taahhüt geri taşımak için kullanabilirsiniz.

 

Git'teki bu gelişmiş kavramlar, deponuzu etkili bir şekilde yönetmenize yönelik güçlü yetenekler sağlar. Bunları nasıl kullanacağınızı ve ne zaman uygulayacağınızı anlamak, Git iş akışınızı ve proje yönetiminizi büyük ölçüde geliştirecektir.