Telefon
WhatsApp

Kaliteli Hizmet, Güvenilir Ödeme ve Hızlı Teslimat Güvencesi..

İLETİŞİM

İleri Seviye GIT Eğitimi

İleri Seviye GIT Eğitimi


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. ????

 

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- Offline kullanılabilmesi
Offline özelliği, hiçbir ağa bağlı olmadan projenizi geliştirebilmenize olanak sağlar.

3- 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.


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.

Commit Nedir, Ne İşe Yarar ?
Commit, kelime anlamı olarak “işlemek” demektir. Git’e eklediğimiz dosyaları kalıcı olarak Git veri tabanına işlemeye commit denir. Projede belli başlı işlemler yapıldıktan sonra dosyaları commit etmek gerekir. Örnek olarak üye kayıt-giriş işlemlerini hallettikten sonra bir commit alabilirsiniz. Daha sonra üyenin yorum yapma özelliği aktifleştikten sonra bir commit alabilirsiniz. Bu tarz çok büyük olmayan ama ufak da olmayan değişikliklerde commit almak son derece sağlıklı bir yoldur.

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.

Versiyonlar Arasındaki Farkları İncelemek
Git’de git status ve git log dışında değişiklikleri ve farkları incelemek için farklı komutlar yer alır.
Versiyon kontrol sistemlerinde iki versiyon arasındaki değişikliklere diff denir. Git’de iki versiyon arasındaki farkları görmek için git diff komutunu kullanabilirsiniz.

İçerik değişikliklerini de görmek için doğrudan git diff komutunu herhangi bir parametre veya seçenek belirtmeden kullanabilirsiniz.
İki farklı branch’in arasındaki içerik farklarını görmek için git diff komutuna karşılaştırmak istediğiniz branch isimlerini parametre olarak verebilirsiniz.

Belirli Bir Kişinin Commitlerini Listelemek
git log komutu bir arşivden içinde kaydedilmesini tüm görüntüler.

Alınan commitleri listeler ve commit detaylarını gösterir.

Son Commit Bilgilerini Düzeltmek
Commit işlemlerinizi ne kadar dikkatli yaparsanız yapın bazen commit’e dahil etmeyi unuttuğunuz veya yanlışlıkla dahil ettiğiniz dosyalar olabilir veya commit mesajında eksik bilgi vermiş olabilirsiniz. Bu durumda son commit işleminizi yeniden yapmak için git commit komutunu –amend seçeneği ile kullanabilirsiniz. Sadece commit mesajınızı değiştirmek istiyorsanız — amend -m seçenekleri ile git commit komutunu çalıştırabilirsiniz, eğer son commit’e dosya eklemek veya dosya çıkarmak isterseniz commit komutundan önce önceki bölümlerde de bahsettiğimiz git add ve git rm komutları ile önce Staging işlemini yapabilirsiniz.

Değişikliklerinizi Geçici Olarak Kaydetmek: Git Stash
Commit işlemi ile dosyalarınızda yaptığınız değişiklikler kalıcı olarak repository’de kayıt altına alınır. Ancak günlük çalışmamızda bazen tam olarak bitmeyen değişiklikleri de kayıt altına almak isteyebiliriz. Örneğin bir değişiklik üzerinde çalışırken başka bir konu ile ilgili kritik bir sorun bildirildiğinde yapmakta olduğumuz işi yarım bırakıp yeni soruna odaklanmak zorunda kalabilirsiniz.

Stash işlemini üzerinde çalıştığımız aktif branch’imizi temiz bir duruma getirmek için kullanabiliriz. Bunun dışında aşağıdaki durumlarda da Git’in Stash özelliğini kullanabilirsiniz.

Farklı bir branch’i aktif hale getirmeden önce
Remote Repository değişikliklerinizi yerel diskinize indirmeden önce
Branch’inizi merge etmeden önce
Değişiklikleri Merge Etmek
Merge komutu iki branch arasındaki değişiklikleri entegre etmenin en kolay yolu olmakla birlikte tek yol değildir. Rebase komutu da iki branch’ı entegre etmek için kullanılan merge komutuna alternatif bir komuttur. Bu durumda kafanızda “Neden merge yerine rebase kullanmak isteyelim?” şeklinde bir soru oluşabilir.

Fast-Forward ve Merge Commit
Basit bazı durumlarda branch’lerden bir tanesinde herhangi bir değişiklik yapılmamıştır ve bu branch’in yukarıdaki bölümde belirttiğimiz ortak commit’i ve son commit’i aynıdır. Bu durumda merge işlemi çok basitleşir ve git diğer branch’in tüm commit’lerini ortak commit’in üzerine ekleyerek merge işlemini yapar. Bu özel duruma Git terminolojisinde “Fast-Forward Merge” denir ve her iki branch’in tarihçesi de ortaktır.

Fakat çoğu zaman her iki branch’de birbirinden bağımsız olarak değişikliğe uğrar ve tarihçe açısından birbirinden uzaklaşırlar. Bu durumda merge işlemini yapmak için Git’in her iki branch arasındaki değişiklikleri içeren otomatik bir commit oluşturması gerekir. Oluşturulan bu commit’e Git terminolojisinde “Merge Commit” denir.

Normal Commitleri ve Merge Commitleri Ayırt Etmek
Normal commit’leri yazılım geliştiriciler ince eleyip sık dokuyarak oluşturulurlar, diğer yandan Merge Commitler ise Git tarafından otomatik oluşturulurlar. Merge işlemi ile ilgili ayrıntıları daha sonradan incelemek isterseniz her iki branch’in commit tarihçesine ve commit çizelgesine bakmanız gerekir.

Merge Alternatifi Olarak Rebase Kullanımı
Merge komutu iki branch arasındaki değişiklikleri entegre etmenin en kolay yolu olmakla birlikte tek yol değildir. Rebase komutu da iki branch’ı entegre etmek için kullanılan merge komutuna alternatif bir komuttur. Bu durumda kafanızda “Neden merge yerine rebase kullanmak isteyelim?” şeklinde bir soru oluşabilir. Bu sorunun cevabını bulmak için önce merge komutunun biraz daha iyi anlamaya çalışalım.

Stash işlemini üzerinde çalıştığımız aktif branch’imizi temiz bir duruma getirmek için kullanabiliriz. Bunun dışında aşağıdaki durumlarda da Git’in Stash özelliğini kullanabilirsiniz.

Farklı bir branch’i aktif hale getirmeden önce
Remote Repository değişikliklerinizi yerel diskinize indirmeden önce
Branch’inizi merge etmeden önce
İleri Seviye GİT Komutları
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.

Git kullanımını öğrendiyseniz sıra programlama dillerini öğrenmekte????
Sizin için hazırladığımız programlama dili odaklı blog yazılarımıza göz atarak hızlıca yeni projeler oluşturmaya başlayabilirsiniz.