27 Aralık 2016 Salı

Git ve GitHub

Git:

Merhaba arkadaşlar bu yazımda Linus Torvalds tarafından geliştirilmiş bir versiyon kontrol sistemi olan git kullanımından bahsedeceğim. Git'in merkezi olmaması onu diğer kontrol sistemlerinden ayırır. Bu şu anlama gelmektedir: Kodları barındıran depo(repository) merkezi bir noktada değil dağıtıkdır. Daha basit bir ifade ile internet bağlantınızın olmadığı bir yerde bile proje kodlarında değişiklik yapıp değişen kodu içeri aktarabilirsiniz.(commit edebilirsiniz) Sonra internete bağlandığınızda değişikliklerinizi kod deposunaaktarabilirsiniz.

GitHub:

Github sürüm kontrol sistemi olarak Git kullanan yazılım geliştirme projeleri için web tabanlı bir depolama servisidir. GitHub özel depolar için ücretli üyelik seçenekleri sunarken, açık kaynaklı projeler için ücretsizdir GitHub ile sizlerde açık kaynak veya  kapalı kaynak olarak ekibinizin ve projelerinizin yönetimini oldukça rahat yapabilirsiniz. Sisteminize git indirerek masaüstü uygulamasından yada konsoldan proje yönetimi yapabilirsiniz.

Git ile GitHub Karıştırılan kavramlardır. Bende daha önce karıştırıyordum. Git bir versiyon kontrol sistemi github ise bir depolama alanıdır. Git projelerimizi uzak bilgisayarlarda saklayabilmemize olanak sağlar. Github gibi farklı yazılımlarda hali hazırda mevcuttur ve  Ayrıca dünya çapında kullanıldığından farklı birçok kişinin projelerine ulaşma imkanı sağlamaktadır.

Git'in Avantajları:

  • Gün, ay, yıl farketmeksizin istediğimiz tarihe dönebilir ve o tarihteki hali ile kodlarımıza erişebiliriz.
  • Dosyalar üzerinde açıklama mesajları(commit message) bırakabilir ve hangi tarihte hangi değişikleri yaptığımıza dair ayrıntıları bu mesajlardan anlayabiliriz.
Git'in çoklu çalışma üzerindeki avantajlarından bahsetmiştim. Bu konuyu biraz daha detaylandırayım. Branch sistemi ile master branch'ın bir kopyası ile çalışarak master branch'da değişiklik yapmadan istediğimiz sayıda kopya branch ile çalışarak orijinal projeyi riske atmamış oluruz. Daha sonra istersek bu kopyaları master branch'a commit edebiliriz. Bu git'in güçlü bir özelliği olan merge(birleştirme) işlemi ile sağlanır.

GitHub kullanırken sıklıkla karşılaşabileceğimiz anahtar kelimeler ve ne işe yaradıkları şu şekildedir.
  1. Commit mesajı: Yaptığımız değişiklikleri kayıt ederken daha sonra neyi neden değiştiğimizi rahatlıkla hatırlayabilmek için commit mesajları ekleyebiriz. 
  2. Pull Request: Bir projeye katkıda bulunmak için kullanırız.
  3. Merge: Birleştirme işlemidir. Yardımcı branchlarda yapacağımız değişiklikler bittiğinde ana branch'a yapacağımız ekleme işlemine denir.
  4. Clone: GitHub reposundaki bir projeyi bilgisayarımıza indirerek localimizde çalıştırıp geliştirme yapmamızı sağlar.
  5. Check Out: Var olduğumuz branch'taki değişiklikler ve geri dönme işlemleri için kullanılır.
  6. Tag: Projemizin versiyon bilgisini tutmamıza yardımcı olur. Böylelikle versiyonlara göre kolayca yapmak istediğimiz değişiklikleri yapabiliriz.
  7. Issue: Ekip arkadaşımıza yeni görevler atamak yada bug düzenlemeleri için kullanılır.
  8. Branch: Sözlük anlamı dal'dır. Ana projemizin kopyasını alıp onun üzerinde çalışarak orjinal projeyi korumamız anlamına gelir. Çoklu çalışmalar için oldukça önemlidir.
  9. Feature Branch: Projemize yeni bir özellik ekleyeciğimiz zaman kullanırız. Her yeni özellik için Feature Branch oluşturulur. Bu şekilde kullandığımız yeni özelliği kullanmaktan vazgecersek sadece özellik branch'ımızı sileriz. Özellih tamamlandığında ise ana branch'a merge edilir. Özellik branch'ları özellikler bittiğinde silinirler.

GitHub Kullanımı:

Git ve GitHub günümüzde kullanılan sürüm kontrol sistemlerinden en popüler olanıdır. Projemize farklı kişiler ekleyebilir, görevler atayabilir ve kontrol edebiliriz. Takım çalışması  yada bireysel çalışma için kullanabileceğimiz ilk aşamada ücretsiz bir platformdur.


Windows Bilgisayarımıza Git Kurulumu:

Git'in resmi sitesinden gerekli versiyonu bulup bilgisayarımıza giti kuruyoruz. Kurulum çok basit olduğundan o kısımdan bahsetmedim. Git kurulunca varsayılan olarak şekildeki gibi arayüz ve kabuk programları geliyor.
Ben Git Bash uygulaması üzerinden anlatım yapacağım. Bash uygulamasını açtıktan sonra kullanıcı ve email'imizi uygulamaya tanıtmamız gerekiyor. Şu kod parçalarıyla bu işlemi gerçekleştirebiliriz.


  • $ git config --global user.name "kullaniciAdi"
  • $ git config --global user.email "e-mail"
Şeklinde bilgileri girmeliyiz. Artık bilgisayarımızda Git'i kullanmaya başlayabiliriz. Git Projelerimizi koyduğumuz bir klasör oluşturarak şu işlemleri yapalım:





gitProjeler isimli dizin bir git projesi olacak bunu git init komutu ile yapıyoruz ve projemiz git dosyalarını barındırmaya başlıyor.


 

GitHub Hesabı Oluşturma:


GitHub hesabı oluşturmak oldukça basit https://github.com adresinden bilgileri doldurarak ve mail onaylanarak bir GitHub hesabı oluşturulur. Daha sonra sign in seçeneği tıklanarak hesabımıza giriş yapabiliriz. Seçeneklerden your profiles ile profil detayları belirtilebilir.

Sonrasında repository oluşturalım. Ben hem GitHub sitesinden hemde masaüstü uygulamasından oluşturarak örnek göstereceğim. GitHub sitesinde sağ üstte profil simgemizin yanında bulunan + işareti tıklanarak ver ardından new repository seçeneği seçilerek işlemimiz başlatılır.
Şekildeki gibi ekran karşımıza çıkmalıdır. Bu ekranda Repository'e bir isim vermemiz gerekiyor. Description kısmına istersek açıklama ekleyebiliriz. Bunlar dışında seçimlik olarak public private alanları geliyor. İsimlerinden de anlayacağımız gibi public herkesin görebileceği şekilde paylaşıma açıkdır. Private ise kaynak kodu paylaşıma açık değildir ayrıca private ücretlidir. Son olarak README dosyasının oluşturulup oluşturulmayacağını soruyor. Bu kısım da kodumuz ile alakalı ziyaretcileri bilgilendirmek içindir. İşlemlerden sonra repository oluşturduğumuzda aşağıdaki bir ekran geliyor. Bu ekran bizi git üzerinden GitHub'a proje koyma konusunda bilgilendiriyor. Şimdi bunları inceleyerek ilerleyelim.
Bizim yapmak istediğimiz işlem için uygun olan kodlar ilk kısımda bulunanlardır. Sırası ile gerekli adımlar yapılarak kodlarımızı paylaşabiliriz. Burda önemli olan GitHub adresimizi doğru girmemizdir.




Hiç yorum yok:

Yorum Gönder