Git nedir ve neden kullanmalıyız?

Yazılım geliştirme ile ilgileniyorsanız GitHub hesabınızın olması mutlaka gereklidir.

GitHub’ı ve kullanımını öğrenmeye başlamadan önce, GitHub’ın kalbi olan Git’i anlamanız gerekli. Git ile GitHub birbirine karıştırılmaması gereken en önemli noktalardan biridir. GitHub, Git yazılımı ile entegre olmuş bir depolama alanıdır.

GitHub kullanımı ile püf noktaları öğrenmek için “GitHub kullanımı” üzerine yazdığımız blog yazımıza mutlaka göz atmalısınız.

Bu yazımızda ise, gelişmiş Git komutları ve GitHub entegrasyonunu detaylarıyla inceleyeceğiz. 🔎

 

Versiyon Kontrol Sistemi Nedir?

Versiyon Kontrol Sistemi (VCS), bir ya da daha fazla dosya üzerinde yapılan değişiklikleri kaydeden ve daha sonra belirli bir sürüme geri dönebilmenizi sağlayan sistemdir. Bir projenizin farklı sürümlerini korumak ve kontrol etmek istiyorsanız, Sürüm Kontrol Sistemi (VCS) kullanmanız oldukça faydalı olacaktır.

VCS, dosyaların ya da projenin geçmiş sürümüne erişmenizi, değişiklikleri karşılaştırmanızı görebilmenizi sağlar. Aynı zamanda, VCS kullanmak, bir hata yaptığınızda ya da bazı dosyaları yanlışlıkla sildiğinizde durumu kontrol etmenizi sağlar.

Yerel Sürüm Kontrol Sistemleri

Yerel sürüm kontrol sistemleri, dosyaları bir klasöre kopyalayarak sürüm kontrolü yapmanızı sağlar.
Bu yaklaşım kolay olması sebebiyle oldukça yaygındır fakat hatalara da alabildiğine açıktır.

Bu sorunla uğraşmamak için yazılımcılar uzun zaman önce,  yerel sürüm kontrol sistemleri geliştirmişlerdir.

Yerel Sürüm Kontrol Sistemleri

Yerel sürüm kontrol sistemleri, dosyaları bir klasöre kopyalayarak sürüm kontrolü yapmanızı sağlar.
Bu yaklaşım kolay olması sebebiyle oldukça yaygındır fakat hatalara da alabildiğine açıktır.

Bu sorunla uğraşmamak için yazılımcılar uzun zaman önce,  yerel sürüm kontrol sistemleri geliştirmişlerdir.

Merkezi Sürüm Kontrol Sistemleri

Yazılımcıların karşılaştığı diğer sorun ise, başka sistemlerdeki programcılarla birlikte çalışma ihtiyacıdır.
Bu sorunu gidermek amacıyla, Merkezi Sürüm Kontrol Sistemleri geliştirilmiştir.

Bu yöntemin sorunlarından biri ise, merkezi sunucunun arızalanması durumunda ortaya çıkacak kırılma noktası problemidir.

Dağıtık Sürüm Kontrol Sistemleri

Dağıtık sürüm kontrol sistemlerinde ise, istemciler dosyaların sadece son bellek kopyalarını almakla kalmaz yazılım havuzunu (repository) bütünüyle kopyalarlar.

Bu sistem, aynı proje için aynı anda farklı insan topluluklarıyla farklı biçimlerde ortak çalışmalar yürütebilmeyi sağlar.

Git Nedir?

Git, Linus Torvalds tarafından 2005 yılında oluşturulan dağıtılmış bir sürüm kontrol sistemidir.
Yazılım projeleri binlerce dosyada içerebilir, bu aşamada Git, proje içerisinde yapılan değişiklikleri yönetmek için kullanılan açık kaynaklı versiyon kontrol sistemidir.

Neden Git Kullanmalıyız?

1- Versiyon yönetim kolaylığı

Projenizin büyüklüğüne göre projenizi yedekleme ihtiyacı duyacaksınızdır.
Bunu yapmak oldukça karmaşık olabilir, bu noktada eğer Git kullanırsanız böyle bir sorununuz oluşmaz.

2- Birden fazla kişinin eş zamanlı aynı proje üzerinde çalışması

Aynı projede, birden fazla kişi ile çalışıyorsanız kodlarınızı birleştirmek oldukça zor olacaktır. Git ile bu işlemleri yapmanız oldukça kolay olacaktır.

3- Offline kullanılabilmesi

Offline özelliği, hiçbir ağa bağlı olmadan projenizi geliştirebilmenize olanak sağlar.

4- Hızlı olması ve az yer kaplaması

Git, kişisel bilgisayarınızda yer kullanımını önler ve oldukça hızlı şekilde çalışır.

Geliştiriciler İçin Gelişmiş Git Komutları

Geliştiriciler için yaygın olarak kullanılan Git komutlarından en popüler olanlarını inceleyeceğiz, bu komutlar değişiklikleri GitHub’a göndermeden önce geliştiricilere oldukça yardımcı olacaktır.

Git Stash

Yazılım projelerinde, yeni bir özellik üzerinde geliştirme yaparken, aniden, acil olarak bir sorun üzerinde çalışmanız gerekebilir.
Çalışmanızın ortasına geldiğiniz için, yarısı yapılan değişiklikleri tekrardan yaparak uğraşmak oldukça zorlayıcı olacaktır.

Bu nedenle, yapılan işi geçici olarak kaydetmek, hata üzerinde çalışmak ve geliştirme üzerindeki çalışmaya geri dönmek oldukça işinizi kolaylaştıracaktır. Git stash ise, bu noktada çözüm sağlar.

git stash list ile, geçici olarak kaydedilen değişikliklerin listesine erişilir.

git stash pop ile, stash listesindeki kayıtları branche yükleyebilir ve listeden silebilirsiniz.

git stash apply ile, stash listesinin üstünde olan kayıtlar branche yüklenir fakat listeden silinmez.

“git stash drop” komutu ile de istediğimiz bir kayıdı stash listesinden silebiliriz.

Git Cherry Pick

Cherry Pick, yalnızca belirli taahhütlerin seçilmesi ve tüm şubeyi başka bir şubeyle birleştirmemenin gerektiği durumlara denir.
Kısaca, atılan bir commit içindeki kodları o an checkout yapılmış olan branch üzerine alma işlemine denir.

Git Reset

Git reset, yerel değişiklikleri geri almak için kullanılan güçlü bir komuttur.  aşamayı kaldırmak için, bu komutun kullanıldığı tüm hazırlanmış dosyalar.

Localde yaptığımız tüm değişiklikleri geri almak için “git reset” komutunu kullanırken, git revert komutu ile ise commit edilen herhangi bir değişikliği geri alabiliriz.

Git Bisect

Git Bisect hata ortaya çıktığında kesin kaydı bulma komutudur.
Git bisect sayesinde, biri iyi diğeri kötü olmak üzere iki işlem seçerek işlemlerinizi gerçekleştirebilirsiniz.
Hatanın veya kodun bozulmasına neden olan işlem bulunana kadar her yürütmeyi kötü veya iyi olarak kontrol etme imkanı sağlar.