Git Master Class
Git Master Class

Git Master Class

Tags
Üretkenlik
Teknoloji
Yazılım
Published
May 2, 2023
 
Herkese merhabalar, bir önceki yazımızda “Github nedir?” ile temel seviye git, github ve gitlab hakkında bilgi vermiştik. Bu yazımızda ise Git’in ileri seviye kullanımını deneyimleyeceğiz. Bazı ufak sorularla Git’in bize nasıl cevap vereceğine bakalım.
Eğer projemizi versiyonlamak için Git kullanıyorsak tahmin edebileceğiniz gibi bizim için en önemli yapı taşı 'commit' işlemi olacaktır.
Peki belirli bir aşamaya gelmiş projemizde çok fazla commit işlemimiz varsa bunun takibini nasıl yapabiliriz ?
Git bunun için ben sana versiyonladığın her commit işleminin logunu tutuyorum ve sana bunu gösterebilirim diyor.
git log Git’te commitlenen veri hakkında bilgileri getirir.
notion image
Projemizde çok fazla commit işlemimiz varsa! Bize de en son commit işlemi veya son 5 commit işlemine ait loglar gerekiyorsa ?
git log –n 1 Bu komut pop işlemidir n ile belirtilen sayı kadar en üstteki logdan başlayarak kayıtları getirir.
notion image
Gönderdiğimiz commit işlemini silmek/işlemi geriye almak istersek ?
git revert 'commitId'github da comit işlemini siler/işlemi geriye alır.
Peki projemizin gerekliliklerine baktık ve son 5 commit işlemimizin gereksiz olduğunu gördük ve silmeye karar verdik. Tek tek 'git revert' işlemi mi yapmalıyız? Git bunuda düşünüp belirtilen 'commitId' den sonra eklenen comitleri silmemizi/geriye almanızı;
git reset –hard 'commitid' komutuyla sağlamıştır. Ancak silme gibi komutların çok dikkatli kullanılması gerekmektedir. Aksi taktirde arada bulunan gerekli commit işlemlerininde silinme ihtimali yüksektir.
Peki gönderdiğimiz commit işlemi hatalıysa veya commit işlemimizde revizeler gerekiyorsa ?
Yeni bir commit işlemi olmadan önceki commit işleminizi nasıl revize edersiniz ?
Commit işlemini git revert ile silip. Tekrar yeni bir commit mi oluşturmalıyız?
Tabiki hayır...
 
Cevabımız çok basit Son commit işleminize;
git commit -–amend komutumuzu girdiğinizde ek bir commit işlemi olmadan projemizdeki commit işlemimizi revize edebiliriz.
Peki commit işlemimizde bir sıkıntı yok ama commit mesajımızı yanlış gönderdiysek ?
Tabiki buda git ile kolayca yapılabiliyor.
git commit –-amend –m 'new mesaj' ⇒ commitlenen verinin mesajını değiştirir.
notion image
notion image
notion image
Peki şöyle bir senaryomuz olsa... Oluşturduğumuz branch'te çalışırken yeni ve önceliği yüksek bir issue geldi. Henüz commitlemeye hazır olmayan değişikliklerimiz var ve bu değişiklikleri kaybetmeden (ve commitlemeden) farklı bir branch’e geçmek istiyoruz. Geri döndüğümüzde ise değişiklikleri bıraktığımız gibi bulmak istiyoruz. Git bunun için sen son commit işleminden sonra yapmış olduğun tüm değişiklikleri bana emanet et ben sana istediğin zaman geri vereyim diyor. Bunu da stash komutu ile sağlıyor.
 
Şimdi gelin Stash ile ilgili komutları inceleyelim;
git stash ⇒branch teki son commit işleminden sonra yapmış olduğun tüm değişiklikleri saklar.
git stash pop ⇒ en üstteki stash kaydını getirir.
git stash apply 'stashid' ⇒ idli stash kaydı getirir
git stash list ⇒ stash listesini gösterir.
git stash clear ⇒stash listesini temizler.
 
Okuduğunuz için teşekkürler…