Github Nedir, Kurulum ve Kullanımı

Kategori PisiLinux, Unix/Linux
28.04.2016
4340 Okunma

github-profileEsen! Bütün dünyada bir “sosyal medya” sözü uygulamalarıyla ve yaşamımızın değişmez bir parçası durumuna gelmesiyle devam ediyor. Burada “sosyal medya” ile ilgili bir toplumbilimlik bir çözümleme yapmayacağım; merak etmeyin. Sizlere yazılımcıların, geliştiricilerin sosyal medyası olarak bilinen Github’dan bahsedeceğim.

Eğer bir takım/ekip olarak yazılım geliştiriyorsanız “source control” yani “sürüm kontrolü” yapan bir uygulama kullanmışsınızdır. Şimdiye kadar git, subversion(SVN) belki de source safe gibi ortamları denemiş ya da bazılarıyla projeler geliştirmişsinizdir.

Peki; bunları ilk defa duyuyor olsanızda, canınızı sıkmayın. Şimdiler en çok kullanılan sürüm denetleme ortamı/yazılım geliştirme: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. Mayıs 2011 itibariyle GitHub açık kaynaklı projeler tarafından tercih edilen en popüler depolama servisi olmuştur.

Git; yazılım geliştirme süreçlerinde kullanılan, hız odaklı, dağıtık çalışan bir sürüm kontrol ve kaynak kod yönetim sistemidir. İlk sürümü Linux çekirdeği’nin geliştirilmesinde kullanılmak üzere 2005 yılında bizzat Linus Torvalds tarafından tasarlanıp geliştirilmiştir.

Git ve Github Aynı Şeyler Değildir!

Biraz daha açalım: Tek makine de proje geliştiriyorsunuz. Her yaptığınız değişikliği, ana projenizin üzerine kaydediyorsanız sürekli en güncel sürümde çalışıyorsunuz demektir. Tamam ara ara da yedek alıyorsunuzdur. Bütün bunlar sizin için bilgisayarınızda yer kaybı, projede geçmişe dönük bir şeyler yapmak gerektiğinde de aradığınızı bulamamanız demektir. Github ve benzeri sürüm kontrol sistemlerinde her yaptınızı ayrı ayrı hemde internet üzerinde saklayabilirsiniz. Her yeni yapılanı bir öncekiyle birleştirebilir ya da sadece farkları görebilirsiniz. Github açık kaynak projeler için ücretsiz. İsteyene ücretli sürümü de var.

Açık kaynaklı PisiLinux ya da BlackArch Linux dağıtımlarının paketleme dosyalarına göz atın:
PisiLinux: https://github.com/pisilinux
BlackArch: https://github.com/BlackArch/

Bende bir Pisi Linux Paket geliştiricisi olduğum için sizlere, temel git komutlarını ve kullanımını PisiLinux Github’ı üzerinden anlatacağım:

1. Eğer bir hesabınız yoksa önce Github ağ betinden bir üyelik açın.
2. Ev dizininize bir “Github” dizini yaratın. Ben bu dizin altında dosyalarımı tutuyorum böylece karmaşayı önlemiş oluyorum.
3. Ev dizinindeyken bir komut satırı açın ve git, openssh paketlerini işletim sisteminize yükleyin. Ben PisiLinux için olanı gösteriyorum:

sudo pisi it openssh
sudo pisi it git

Komut satırına yazın ve entera basın:

ssh-keygen

Bu komut Github için bize bir anahtar üretti.

cd /home/kullanıcıadınız/.ssh

içinde id_rsa.pub adlı dosyayı metin düzenleyicinizle açın ve içeriğini kopyalayın. Github hesabınızda profil resmine tıklayın “Settings/Ayarlar” gelin. Betin solundaki mönüde “SSH and GPG Keys” tıklayın. Açılan bette sağ üstteki “New SSH Key” düğmesine tıklayarak açılan betteki forma id_rsa.pub dosyasından kopyaladığınız anahtarı yapıştırıp kaydedin.
4. İlk öğreneceğimiz şey githubdaki bir projeyi/depoyu/repoyu (doğrusu repository) kendi Github betimize kopyalamak/almak. Bu işleme forklamak/fork etmek diyoruz. Maalesef uygun bir Türkçe karşılık bulamadım. Fork etmek istediğinizi reponun sağ üstünde “Fork” düğmesine basıyoruz. Bet yeniden yüklendiğinde kendi hesabınızda aynı repoyu göreceksiniz.
cloneaddress5. Github kullanırken repoyu bilgisayarımıza kopyalayacağız şimdi de. Bu işleme “yerele almak” diyoruz. Gözatıcınızdan “Download ZIP” yapmaktan daha iyi! O download zip düğmesinin solunda bir form içinde ssh bağlantısı var, Ctrl-C ile kopyalayalım ve Github dizinimizdeyken bir terminal/uçbirim açalım, komut satırına yazın:

git clone [email protected]:blue-devil/top-programming-fonts.git
git clone [email protected]:blue-devil/PisiLinux.git
git clone [email protected]:blue-devil/contrib.git
git clone [email protected]:blue-devil/core.git
git clone [email protected]:blue-devil/main.git

Burada “blue-devil” yazan yerde sizin kullanıcı adınız yazıyor olmalı. Çünkü forkladığınız repoyu bilgisayarınıza indirip üzerinde değişiklik yapıp tekrar internete yükleyebilirsiniz. Ama başkasınınkini indirirseniz yaptıklarınız sadece bilgisayarınızda kalır. Entera bastığınız anda, o repoyu bilgisayarınızda komutu verdiğiniz dizine indirmeye/klonlamaya başlayacak.

5. Şimdi o indirdiğiniz dizinin içine girin ve:

 git config --global user.name "kullanıcı adı"
 git config --global user.email "[email protected]"

Ayarlamayı yapın.

6. PisiLinux için örnek vererek konuşuyorum /core /main /contrib ya da fork edip klonladığınız dizinlere “cd” komutuyla girip, komut satırına yazın:

git remote add upstream [email protected]:pisilinux/core.git
git remote add upstream [email protected]:pisilinux/main.git
git remote add upstream [email protected]:pisilinux/contrib.git

Buradaki “upstream” repoyu yapanların yarattığı/kullandığı bir branch(dal), mesela bizim kendi repolarımız için kullandığımız branch(dal) ise “origin”.

7. Github ile yenilikleri, değişiklikleri çekelim. /core /main ya da /contrib repolardan birine cd ile girin, ve komut satırına yazın:

git pull upstream master

Bu komut ile yerelinizdeki dizin ile uzaktaki dizin karşılaştırılır ve değişiklikler sizin yerelinize(hard diskinize) yazılır.

8. Ve son olarak, yerele çektiğiniz dosyalarda değişiklik yaptınız. Bunları uzaktaki github’a göndermek istiyorsunuz. yeniDizin adlı bir dizinim var ve içinde dosyalarım olsun. Bunu göndermek istiyorum. İzlemeniz gereken sıra şu:

git add yeniDizin/*
git commit -m "yeniDizin:yaptığım değişiklikle ilgili kısa bilgi"
git push -u origin master

Buradaki origin benim hendi github repomun branch(dal)’ı. Daha değişik bir adda olabilirdi. Ama değiştirmediyseniz ilk kullanımda bu olacak.be-social
Bu ilk Github yazımda ilk kullanım için temellerden bahsetmeye çalıştım. Konuyu geliştirip daha ayrıntılı yazılar yazacağım. Sağlıcakla kalın.

Comments of this post

Henüz yorum bulunmuyor!