Github Nedir? Yeni Başlayanlar İçin GitHub

Github; geliştiricilerin yazdığı kodları depoladığı ve düzenlediği bir kontrol sistemidir. Bulut alt yapısını kullanarak dizayn edilmiş Github üzerinde, kodlarınızın takibini yapabilir veya değiştirebilirsiniz. Bulut sistemi, veriye internet olan herhangi bir yerden erişim özgürlüğü sunan bir alt yapıdır. Bu sayede bilgisayarınız olmadan da koda ulaşmanız bulut ve Github aracılığıyla sağlanmış olur.

Github’ı kavramak adına öncelikle iki kavramdan söz etmemiz gerek:

  1. Version Control (Versiyon Kontrol)
  2. Git

Bu iki kavramı açıkladıktan sonra, Github hakkında detaylara girip, sonrasında yeni başlayan birisinin bilmesi gerekenleri sizlerle paylaşacağız.

Versiyon Kontrol Nedir?

Versiyon Kontrol bir dosya grubu üzerindeki, zaman içinde meydana gelen değişiklikleri kaydeden bir sistemdir. Geliştiricilerin çoğu bir projeyi yaparken, adım adım ilerleyerek üzerine yeni değişiklikler eklemektedir. Versiyon Kontrol bu değişikliklerin takibini tutarak kişiye ve projeye yardımcı olmaktadır.

Günümüzde birçok proje, birden fazla insanla gerçekleştiğinden bu sistem oldukça avantaj sağlamaktadır. Diyelim ki bir proje üzerinde değişiklik yapmak istiyorsunuz ve en başından beri tüm değişiklikler tek bir dosya içinde saklanıyor. Yapacağınız en ufak hata ile elinizdeki projeyi kaybedebilirsiniz.

Versiyon Kontrol sisteminde ise böyle bir değişiklik orijinal dosya yerine, branch adı verilen dallar üzerinde yapılmaktadır. Her yeni değişiklik için ayrı bir branch oluşturabilirsiniz.

Git Nedir?

Git, 2005 yılında Linus Torvalds ve ekibi tarafından geliştirilen spesifik ve açık kaynak olan bir versiyon kontrol sistemidir.

Git, Distributed ( Dağıtık ) Versiyon Kontrol sistemidir. Bu sistem ile tüm proje dosyası onu geliştiren herkesin bilgisayarında yer alabilir. Üzerinde değişiklikler, branch eklemeleri yapılabilir. Ardından bu değişiklikler ana projeye bağlanır. Bir başka Versiyon Kontrol Sistemi olan Centralized sistemde tek bir dosya vardır ve değişikliklerin hepsi oraya gitmektedir. Ana dosyada bir sorun çıkması dahilinde, sistemde aksamalara yol açacağından Distributed Versiyon tercih edilmektedir.

distributed ve centralized versiyon sistemleri
distributed ve centralized versiyon sistemleri

Tarihçesinden biraz bahsetmemiz gerekirse Git; Linus Torvalds‘ın, Linux Kerneli projesini geliştirirken ortaya çıkan bir projesidir. Aynı zamanda Linux Kerneli, kapsamlı bir açık yazılım projesidir. Birçok geliştiricinin katkıda bulunduğu bir proje olması sebebiyle, 2002 yılından itibaren Bitkeeper kontrol sistemini tercih etmektedirler. 2005 yılında Bitkeeper şirketi ve Linux arasındaki ilişkiler kopunca, topluluk üç yıllık deneyimleriyle kendilerine özel bir sistem yapmaya girişti. Bu sistemde amaçladıkları; sistemin hızlı, tamamıyla dağıtık ve devasa projeleri destekleyebilir kapasitede olabilmesiydi. Bu amaçları doğrultusunda geliştirilen Git istenilen sonuçları aldıkları bir sistem haline gelmiş ve günümüzde birçok geliştiricinin ilk tercihi olmuştur.

O Halde Github Nedir?

Github; Git kullanarak bulut alt tabanlı depolama sistemi sunan bir dernektir.

Github, acemi bir geliştiricinin bile rahatlıkla kullanabileceği ve kullanıcı dostu olan bir arayüze sahiptir. Böyle olmasıyla birçok kişi tarafından tercih edilir hale gelmiştir.

İsteyen herkes ücretsiz bir şekilde üye olup, projelerini depolayabilmektedir.

Şirket olarak gelirlerini gizli projelere sağladıkları altyapı sistemleriyle sağlamaktadırlar. Projelerin gizliliği ve güvenliği konusunda da hizmet sunan Github her açıdan, kullanıcılara hitap edebilmeyi başarmış durumda.

Github Arayüzü

Github kullanışlı ve de basit arayüzüyle bilinmektedir. Her bir proje repository (depolama yeri) olarak adlandırılmaktadır. Yeni bir proje oluştururken dilediğiniz proje adını verebilirsiniz. Projenin gizli olup olmama seçeneğini işaretledikten sonra projenizi oluşturabilirsiniz.

github arayüzü

Projenizi oluşturduktan sonra bilgisayarınızdan kod yükleyebilir, projenizi bilgisayara indirebilir veya diğer seçeneklerden projeniz hakkında bilgi sahibi olabilirsiniz. Github, sahip olduğu arayüz ile birçok seçeneğe aynı anda ulaşma imkanı sağlamaktadır.

github arayüzü

Yeni Başlayanlar İçin Github Kullanımı

Github, komut satırı arayüzüne de sahiptir. Bu yazıda; komut satırı üzerinden bir yerel proje oluşturmak, değişiklikleri kaydetmek, ardından bunu bulut sisteminde depolamak gibi adımlardan bahsedilecektir. Komut satırını öğrendikten sonra arayüzü kullanmak sizin için daha pratik bir hal alacaktır.

Kullanmaya geçmeden önce iki adımı tamamlamanız gerekli. Bunlar:

  1. Git Yüklemek
  2. Github üzerinde hesap oluşturmak

Windows Üzerine Git Kurmak İçin:

https://git-scm.com/download/win adresinden sisteminize uygun olan kurulum dosyasını indirerek gerçekleştirebilirsiniz.

Mac OS Üzerine Git Kurmak İçin:

https://git-scm.com/download/mac adresinden istediğiniz şekilde kurulum dosyasını indirerek gerçekleştirebilirsiniz.

Linuz Üzerine Git Kurmak İçin:

Debian tabanlı sistemler için (Ubuntu, Linux Mint vs):

sudo apt-get install git-all

RedHat tabanlı sistemler için(RHEL, Centos vs):

sudo yum install git-all

DNF kullananlar için:

 sudo dnf install git-all

Bu adımı tamamladıktan sonra Github üzerinden hesap oluşturmaya geçebilirsiniz.

Adım Adım Github Komut Satırı Kullanımı

İlk Adım: Kullanıcı Bilgilerini Girmek

Github üzerinde hesap oluşturdunuz. Bilgisayarınızda Git yüklü. Bundan sonraki adım Git Komut Satırını kullanarak sizi tanımasını sağlamak. Böylece bilgisayarınızdaki dosyaları Github’a yükleyebileceksiniz.

Kendinize ait kullanıcı adını ve de mail adresini girmeyi unutmayınız.

git config --global user.name "yagmurmutluer9"
git config --global user.email "yagmurmutluer@example.com"

İkinci Adım: Local (Yerel) Bir Git Repository’si Oluşturmak

İlk adımı tamamlamanın ardından yeni bir dosya oluşturmakla başlayalım. Eğer bu komutlara yabancıysanız tek tek üzerinden geçelim.

cd: change directory yani dizin değiştir demek. Burada anasayfa dizinine çıkıyoruz.

mkdir: make directory yani yeni bir dosya oluştur demek. Burada anasayfa üzerinde yeni bir dosya yaratıyoruz.

Yeniden cd komutunu kullanarak yeni projenin olduğu dosyaya geçiyoruz.

cd ~/Desktop
mkdir yeniproje
cd yeniproje

git init: Bu adımdan sonra projeyi Git’e bağlamak için kullandığımız komut. Bu sayede artık bir Git repo’muz var.

git init
Initialized empty Git repository in /Users/teknolojiorg/Desktop/yeniproje/.git/

Üçüncü Adım: Yeni Dosyaları Bu Repo’ya Eklemek

touch: Bu komut ile yeni bir dosya ya da belge yaratabilirsiniz. Burada yenimetin.txt oluşturduk.

ls: list komutu dosya içerisindeki belgeleri, dosyaları sıralamaya yarar. Bizim sadece tek bir belgemiz olduğundan sonuç olarak yenimetin.txt görüyoruz.

touch yenimetin.txt
ls
yenimetin.txt

Dördüncü Adım: Dosyaları Bulut Ortamına Aktarmak

Artık bu dosyayı Github ortamına yüklemeye geldi.

git status ile dosyanın içindeki belgelerin durumunu öğrenelim önce. Bize gösterilen sonuçta yenimetin.txt belgesi Git sistemine eklenmedi diye bilgi vermekte. Öneri olarak da git add komutunu sunmakta.

git status


$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        yenimetin.txt

nothing added to commit but untracked files present (use "git add" to track)

Bir dosyayı Git’e yüklemek git add komutu kullanır. Bu şekilde bu dosyayı eklemiş olduk. Fakat henüz yüklemiş sayılmayız.

git add yenimetin.txt

Yeniden git status ile sonuca baktığımızda yenimetin.txt’in eklendiğini fakat commit eklenmediğini görüyoruz. Commit değişiklikleri kaydetmemizi sağladığı için her git add adımından sonra yazılması gerek. Yazılmadığı takdirde dosyamız sisteme yüklenmez.

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   yenimetin.txt


Beşinci Adım: Commit Oluşturmak (Değişikliklerin Tümü)

Commit oluşturmak git commit -m “commit mesajı” komutuyla gerçekleşmektedir.

Commit mesajı yüklediğiniz ya da değiştirdiğiniz konuyla ilgili olmalıdır. Bir hatayı düzeltme, yeni bir değişiklik ekleme gibi olabilir.

git commit -m "Bu benim ilk commit'im!"

Altıncı Adım: Yeni bir Branch Oluşturmak

Daha önceden branchlerden (dallardan) bahsetmiştik. Büyük projelerin tek bir branch üzerinde yapılanmadığını, birçok daldan oluştuğunu dile getirmiştik. Şimdi bir branch nasıl oluşturulur ona bakalım.

git checkout -b <branch adı> komutuyla birlikte yeni bir branch oluşturulur ve de bulunduğunuz branch’den oluşturduğunuz branch’e geçmeyi sağlar.

git checkout -b <versiyon2> 

Tüm branchleri görmek istiyorsanız git branch komutunu kullanabilirsiniz. Bu size olan branch’leri listeleyecektir. Şu an olduğunuz branch yıldız (*) ile gösterilmektedir.

git branch
 master
*versiyon2

Bu branch’in içinde de touch ile bir dosya oluşturup, git add komutunu kullanarak ekleyelim. Ardından git commit -m komutu ile değişiklikleri kaydedelim.

touch birbaskadosya.txt
git add birbaskadosya.txt
git commit -m "birbaskadosya eklendi."

Yedinci Adım: Github Üzerinde Repository Oluşturmak

Şimdiye kadar yaptığımız tüm işlemler kendi bilgisayarımız üzerindeydi. Eğer buna Git üzerinden erişmek istiyorsak öncelikle Github üzerinde bir repository oluşturuyoruz. Arayüz bölümünde gösterdiğimiz adımları takip ederek bunu gerçekleştireceğiz.

Yeni bir repo oluşturmak için Github sitesine gidin ve sonra giriş yapın. Sizi karşılayan ekranda sağ üst köşede bir artı butonu göreceksiniz. Ona tıkladığınız zaman listelenmiş seçeneklerden ilki yeni bir repo oluşturmak içindir. Onu seçerek devam edelim.

Yeni açılan sayfada karşılaştığımız arayüz bir repo oluşturmak içindir. Sırasıyla repository adı, isterseniz açıklama girerek devam ediniz. Sonrasında projenin gizli olup olmayacağını seçerek projeyi oluşturunuz.

github repo oluşturmak

Yeni açılan sayfada Github bize, sıfırdan dosya oluşturmak mı yoksa, önceden oluşturduğun dosyaları yüklemek mi istersin diye iki seçenek sunmaktadır. Biz projemizi bilgisayarımızda çoktan oluşturduğumuzdan ikinci seçeneği seçiyoruz.

https://github.com/yagmurmutluer9/yeniproje.git linkini kopyalayalım. (Bu adımda kendi oluşturduğunuz linki kopyalamayı unutmayınız.)

github repo oluşturmak

Yeniden komut satırını açalım.

git remote add origin [repo-linki] komutunu yazalım. Burada kendi kullanıcı adınız ve proje adınızla oluşturduğunuz linki koymayı unutmayın.

Ardından yazdığımız git push -u origin master komutu ile bilgisayarda oluşturduğumuz dosyalar git hesabına yüklenmiş oldu.

git remote add origin https://github.com/yagmurmutluer9/yeniproje.git
git push -u origin master

Sonuca baktığınızda oluşturduğunuz dosyayı görebilirsiniz.

Sekizinci Adım: Github’a Branch Yüklemek

Bu adımda daha önceden oluşturduğumuz branch’i ekleyeceğiz. Böylece yaptığınız değişikliklerin herkes tarafından görülmesini sağlayacaksınız.

İlk başta git branch komutu ile oluşturduğumuz branchleri ve de olduğumuz branchi görelim.

git branch
master
*versiyon2

Ardından git push origin [branch-adı] ile branch’i repo’ya yükleyelim.

git push origin versiyon2

Bunun sonucunu görmek isterseniz github üzerinden bakabilirsiniz. Sayfaya girip repo’nuzun olduğu yere ulaşın. 2 branches olarak görülen yere tıklayın ve işte karşınızda oluşturduğumuz branchler!

Dokuzuncu Adım: Pull Request Oluşturmak

Çekme talebi olarak çevirebileceğimiz pull request, (ya da pr) bir repo sahibinin kodunu değiştirdiğimizde ona bildirim gitmesini sağlar. Bunu daha iyi kavramak için bir örnek verelim. Bir web sitesi projesi üzerinde çalışan iki ekip ve onları kontrol eden bir sistem (kişi) var. Bu ekipler yaptığı değişiklikleri ana proje hesabına yüklerken pull request oluştururlar. Sistem bu pull requestleri gözden geçirir ve de uygun gördüklerini kabul eder. Bu şekilde projeler sorunsuz bir şekilde yürür.

Görselde versiyon 2’nin sağında kalan new pull request‘i seçelim ve bekleyelim.

github pull request oluşturmak

Açılan sayfada pull request için bir isim ve de açıklama girebilirsiniz. İsim girmek zorunludur. Ardından create pull request‘i seçip bekleyelim.

github pull request oluşturmak

Sonuç olarak yeni bir request oluşturmuş olduk.

Bu adımda Github bize bu pull request’i orijinal proje ile birleştirmek ister misin diye sormaktadır. Bunu nasıl anlıyoruz derseniz merge pull request seçeneği bize bunu söylemektedir.

Bu değişikliği orijinal projeyle birleştirmek istediğimizden bu seçeneği seçip devam ediyoruz.

github merge etmek

Onuncu Adım: Pull Request’i Merge Etmek

Seçeneği seçmemizin ardından açılan sayfada pull request’in başarılı bir şekilde merge edildiğini ve de kapandığını bize söylemektedir. Bununla birlikte Github bu branch’i silme seçeneği de sunmaktadır. Artık değişiklikler orijinal hesaba geçtiğinden bu branch’in varlığına gerek yoktur. Delete branch seçeneğini seçebilirsiniz.

Bu adımdan sonra repo’nun olduğu sayfaya dönersek iki adet belge görmekteyiz. Bunlardan biri master branch’inde oluşturuldu diğeri ise versiyon 2 branch’inde.

github merge etmek

Onbirinci Adım: Değişiklikleri Bilgisayara Aktarmak

Bu yaptığımız değişiklikleri yerel bilgisayarımızda da görmek istiyorsak eğer git pull origin master komutunu kullanmalıyız. Böylece yapılan değişiklikler bize aktarılacaktır. Bunu yaparken oluşturduğunuz dosyanın içine komutu yazmayı unutmayın.

git pull origin master
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), done.
From https://github.com/yagmurmutluer9/yeniproje
 * branch            master     -> FETCH_HEAD
   1ae44af..7328b5f  master     -> origin/master
Updating 964e63c..7328b5f
Fast-forward

Teknoloji'den geri kalmamak için e-posta listemize abone olun!

teknoloji, hayal gücü ve sanat dünyalarını seven, üçünü bir araya getirmeye hevesli bir bilgisayar mühendisliği öğrencisi.