Ana içeriğe atla

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. GIT sürüm kontrol sistemini kullanan her bir çalışma dizini (proje), internet erişimi ya da merkezi bir depo olmaksızın tüm tarihçeyi tutan ve sürüm kontrol sisteminin tamamını içinde barındıran tam yetkili birer depodur.

Yeni proje oluşturmak, Projeye kişiler eklemek, kişilere görevler atamak, kişilerin analizlerini tutmak, ana projeyi değiştirmeden yeni kodları test etmek için dallar (Branch) oluşturmak, Dallar üzerinde çalışırken projeyle bu değişiklikleri birleştirmek (merge), yapılan işlerle ilgili yorum düzenlemeleri gibi  pek çok şey yapabilirsiniz.




Ubuntu gibi Debian-tabanlı bir sistemdeyseniz, apt-get'i kullanabilirsiniz:


$ sudo apt-get install git

Git'i kurduğunuzda yapmanız gereken ilk şey adınızı ve e-posta adresinizi ayarlamaktır.

$ git config --global user.name "isminiz" 
$ git config --global user.email mailiniz


$ssh-keygen komutuyla ssh anahtarını oluşturuyoruz.

Ardından oluşturduğumuz ssh anahtarını kopyalayalım     .ssh/id_rsa.pub dosyasını açın ve tümünü seçip kopyalayın, kopyaladığınız key’i github hesabınıza ekleyin. “settings” butonuna tıklayın, sonra SSH keys bölümüne girin, daha sonra “Add SSH key” butonuna basarak key'i oraya kaydedin.Bundan sonra uzak depoya dosya gönderirken şifre girmenize gerek kalmayacak.

Eğer uzak depoya dosya gönderirken Permission denied (publickey) hatası alıyorsanız https://help.github.com/articles/generating-ssh-keys/ yardımcı olacaktır.

Git projesi edinmenin başlıca iki yolu vardır. 
  • Varolan bir projeyi Git'e aktarmak 
  • Sunucuda yer alan bir Git yazılım havuzunu klonlamaktır.

Varolan Bir Projeyi Git'e Aktarmak 

 

$ mkdir komutu ile trygit adında bir dizin oluşturalım.
$ cd ile trygit dizinine geçiş yapalım.

Var olan bir projenizi sürüm kontrolü altına almak istiyorsanız, projenin bulunduğu klasöre gidip aşağıdaki komutu çalıştırmanız gerekir:


  • $ git init

Bu,  Git iskeletini içeren .git adında bir klasör oluşturur.
Yeni bir çalışma dizini başlatmış oluruz.Bu noktada, projenizdeki hiçbir şey sürüm kontrolüne girmiş değildir. 


Bir dosya oluşturup o dosyayı gönderelim.
  • $ gedit something.py


Depoya eklemek istediğimiz dosyayı index denilen git geçici alanına eklemek için git'ten something.py dosyasının bir görüntüsünü almasını isteyelim.


Bu görüntü, git'in "index" adını verdiği geçici bir alanda saklanır.

  • $ git add something.py
Index'in içeriğini kalıcı olarak saklamak için git commit komutunu kullanalım.









  • $ git commit -m "something.py eklendi."

Şimdi, projemizin ilk sürümünü git içinde sakladık. Dosyamız yerel depoya atıldı.
Ancak henüz uzak depoya ulaşmadı.

Bu adımda github hesabımızdan Repository oluşturalım .
https://github.com/user-name/repository-name şeklindeki URL'yi(HTTPS clone URL'den) kopyalayalım.
Uzak depo eklemek için :
  • $ git add remote origin https://github.com/user-name/repository-name

Şimdi değişikliklerinizi uzak sunucuya gönderebiliriz.


git push <REMOTENAME> <BRANCHNAME>
  • $ git push origin master



Commitledikten sonra git push origin master diyerek uzak depoya dosya ekleyebilirsiniz.(Eğer master branch’ına göndereceksek)

Yaptığınız değişikliklerin geçmişini aşağıdaki komut ile görebilirsiniz:
  • $ git log

Her adımda yaptığınız değişikliklerin tamamını görmek için şunu kullanın:
  • $ git log -p

Genellikle, değişikliklerin özetini görmek her adımı hatırlamakta faydalıdır.


  • $ git log --stat --summary


Nelerin teslim edilmek üzere olduğunu git-diff komutunu --cached seçeneği ile kullanarak görebilirsiniz:
  • $ git diff --cached




Dosya.txt adında dosya oluşturup uzak depoya gönderelim. Sonra tekrar o dosyayı açıp içinde düzenlemeler yapalım. Uzak depoya göndermeden yaptığımız değişikliklere bakalım. Değişikliklere bakmak için $ git diff --cached kullanalım. Dosyanın eski ve yeni içeriğini bize gösterdi.Commit mesajı ekleyip nelerin değiştirildiğini yazıp uzak depoya yollayalım.


Branch'ler İle Çalışmak

Git'de branch kullanımı tercihe bağlı değildir, aslında farkında olmasanız bile projeniz üzerinde çalışırken her zaman aktif tek bir branch üzerinde çalışırsınız. Git'de projenizi ilk oluşturduğunuzda Git varsayılan olarak sizin için master adı veilen bir branch oluşturur ve siz bu branch üzerinde çalışmaya başlarsınız. Branch'ler farklı bağlamlarda çalışmaktan kaynaklanabilecek karmaşanın önüne geçmek için biçilmiş kaftandır.

git branch mybranch komutunu çalıştırdığınızda git sizin için projenizdeki dosyaların o anki halini barındıran mybranch isimli bir branch oluşturur.
Git git branch komutu ile oluşturduğunuz yeni branch'i otomatik olarak aktif hale getirmez.
Branch'inizi oluşturduktan sonra git branch komutunu çalıştırdığınızda git size projeniz için oluşturduğunuz tüm branch'leri listeler ve aktif olan branch'i başınada * simgesi olacak şekilde gösterir.

Local Bir Branch'i Yayınlamak


  $git push origin mybranch komutuyla localde bulunan mybranch branch'ını uzak depoya göndeririz.



Master branch'ına geçtikten sonra mybranch dalında yapılan değişiklikleri master'da birleştirmek için $git merge mybranch komutunu kullanalım.

Branch'leri Silmek

Remote repository'ye erişip branchleri kontrol ederseniz mybranch isimli branch'in sunucuda hala durduğunuz göreceksiniz. $git branch -d mybranch komutusuncudaki branch'i değil yerel bilgisayarınızda remote branch bilgilerini siler. Bu değişikliğin suncuda da geçerli olması için yani sunucudaki branch'i de silmek için git push origin :mybranch komutu ile değişikliği bir anlamda remote repositry'de yayınlamanız gerekiyor.   
  •  Projenizde birden çok uzak uçbirim varsa, $ git remote -v komutu hepsini listeleyecektir.
Proje arkadaşlarımızın yaptığı değişiklikleri kendi yerel depomuza çekmek için ise $ git pull komutunu kullanırız.

Github'daki Projeyi Forklamak

 Github'da destek olmak istediğiniz bir depo varsa, doğrudan o depoya yazma hakkınız olmadığı için, önce kendinize bir kopyasını almanız gerekiyor. Forklamak istediğiniz depoya gittiğinizde, sağ üst köşede, fork linkini göreceksiniz. Bunu denemek için,  https://github.com/octocat/Spoon-Knife adresindeki depoyu forklayabilirsiniz. 

Eğer projeyi forklarken şu hatayı alıyorsanız:

Error Code 403 fatal: HTTP request failed

Çözümü: git remote set-url origin https://yourusername@github.com/user/repo.git

 

 

Projeyi forkladıktan sonra HTTPS clone URL'yi kopyalayalım.
Bir dizin oluşturalım ve  $ git clone ile oluşturduğumuz dizine klonlayalım.
Oluşturduğumuz dizinin içinde forkladığımız Spoon-Knife deposu gelecektir. $ cd Spoon-Knife komutuyla dizinin içine girelim . $ls ile içindeki dosyalara bakalım.3 adet dosya gelmiş,1 tane biz oluşturup göndermeye çalışalım. Commitlemeden önce $ git add demediğim için untracked files çıktısı verdi ,çünkü index'e ekleyeceğimiz dosyanın görüntüsünü kaydetmedik. $git push origin master ile yaptığımız değişiklikleri uzak depoya gönderelim.

 

Şimdi fork.txt dosyası eklendi. Peki bizim yaptığımız değişikliği deponun sahibi nasıl görebilir?

GitHub Pull Request

GitHub tarafında pull request yöntemi fork ve pull modeli ile gerçekleşmektedir. Yapılan katkıların bir projeye çekilmesi için gerekli proje ilk önce GitHub üzerinden fork (çatallama) işlemine tabi tutulmalıdır. Kopyalanan (fork’lanan) proje diğer geliştiricinin hesabında oluştuktan sonra yapılacak katkının önemliliğine göre projeyle lokalde çalışılması için kendi makinesine bunu klonlaması gerekmektedir. Yapılan geliştirimler ile oluşan işlem akışı Git aracılığıyla öncelikle kendi projesine (origin) gönderilir daha sonra GitHub servisiyle asıl projeye (upstream) katkıların çekilmesi isteği ile sonlanır.

Github'ı öğrendikçe buraya yazmaya devam edeceğim. Umarım faydalı olmuştur.
İyi Çalışmalar


Yorumlar

Yorum Gönder

Bu blogdaki popüler yayınlar

VirtualBox ile Kali Linux Kurulumu

Merhaba, uzun zamandır ilgimi çeken Kali Linux işletim sistemini  dün yükleme fırsatı buldum.Kali debian tabanlı bir linux dağıtımı olan bir güvenlik kontrol işletim sistemidir. İçerisindeki araçlar sayesinde birçok alanda(Ağ, Windows, Arduino) güvenlik testi yapmamıza ve yazılım geliştirmemize olanak sağlar. Bu yazımda size Kali Linux'un sanal makineye kurulumunu elimden geldiğince anlatmaya çalışacağım. İşletim sistemlerini fiziksel makinelere kurmak yerine sanal olarak kurabiliriz.Bilgisayar biliminde Sanal makine, programları gerçek bir bilgisayar sistemindeki gibi çalıştıran mekanizmaların yazılım uyarlamasıdır. Sanal Makine, işletim sistemi ile bilgisayar platformu arasında bir sanal ortam yaratır ve bu sanal ortam üzerinde yazılımların çalıştırabilmesine olanak sağlar. Gelelim Kali Linux'un sanal makineye kurulmasına. Öncelikle Oracle VM VirtualBox'ı şu linkten https://www.virtualbox.org/wiki/Downloads Platform Packages  kısmından bilgisayarımıza uygun olanı...

ASP.NET MVC Database( LocalDB) Bağlantısı

Önce yazımda basit bir örnek yapmıştım sadece View ve Controller kullanarak bir sayfa oluşturmuştuk.Bu yazımda yapacağım örnekte Model'e ihtiyacımız olacak.Bu örnek öğrenci ve dersleri kaydedip hangi dersi kimin alacağını tutan bir veritabanına sahip proje olacak. Önceki yazımı buradan  okuyabilirsiniz.Eğer projemizi açtıysak  proje ismine sağ tıklayıp Add -> New Item deyip    Data'yı seçtıkten sonra ADO.NET Entity Data Model'i seçip Model ismimizi yazıp Add diyelim. Code first yaklaşımını şu şekilde açıklayayım.Örneğin ders.cs adında kendim bir sınıf oluşturup içine public int ID; public string AdSoyad; yazdığımda  database'de dersler diye bir sınıf oluşturur ve içerisine bu kolonları ekler, sql server'ı açıp eklemek zorunda kalmam.Yapacağım şey kodu C#'ta yazmak ,böylece veritabanı oluşacak. Database First yaklaşımı ise veritabanını sql serverda oluşturturduktan sonra,C#'ta karşılığını Entity Framework gerçekleştirir.Yani Da...

Kali Linux Unutulan Root Parolası

Merhaba , bu yazımda Kali Linux'ta root parolası sıfırlamayı anlatacağım. Bugün sanal makinamda kurulu Kali Linux işletim sistemini açmayı denedim , root parolasını hatırlayamadım.Benim gibi bu sorunu yaşayanlar için bloğumda çözümü anlatmak istedim.  Kali sanal makinaya nasıl kurulur diyorsanız   ö nceki yazımdan   öğrenebilirsiniz. Recovery Mode'u seçelim. Yukarıda 'e' to edit the commands before booting diyor. Düzenlemek için  Recovery Mode'u seçtikten sonra e' ye basalım. Karşımıza yukarıdaki gibi bir ekran çıkıyor. Ro yani read only yerine rw (okuma ve yazma izni ile açmak) yazalım. Yukarıda altı çizili kısmı  (init=/bin/bash) koda ekleyip  Ctrl + x ile sistemi başlatalım. NOT : Klavyenizde i yerine ı , = yerine Fn + - , / yerine   Fn  + .   kullanmaya ihtiyacınız olabilir.            passwd root yazıp ilerleyelim. Parolanızı belirledikten sonra  reboot -f komutuyl...