E tabi Linux kullanıyorsanız komut satırını kullandığınızı ya da kullanmaya başladığınızı var sayıyorum.
Bu arada bu yazımı hazırlarken Git ve Github nedir bildiğinizi varsayarak yazımı hazırlamak istiyorum ama emin olun hiç bir şey bilmeseniz bile ne demek istediğimi anlayabileceğiniz kadar basit anlatacağım. Ama yine de bazı terimleri yani komutları daha iyi anlamak adına pull request, branch, repository ve merge pull request nedir öğrenmenizi tavsiye ediyorum. Evet terimleri ingilizce kullanacağım , aklınızı Türkçe yazarak daha fazla karıştırmak istemiyorum çünkü.
Yine de emin olabilirsiniz Github’ı gerçek manada başarılı bir şekilde kullanmanızın yolu Linux işletim sisteminiz ile Github beraber kullanmanızdan geçiyor. Hadi başlayalım!
- Linux için Git’i kurmak
Öncelikle Linux işletim sistemine kurabilmek için terminal ekranınızı açıyorsunuz. İster Ubuntu kullanın ister başka bir distro komutlar üç aşağı beş yukarı aynı olacak. Sadece paket komutları farklılık gösterecektir ama komutu anlamanın sizi zorlamayacağına emin olabilirsiniz.
root@melic:~# sudo apt-get install git
Esasında komut satırına dikkat ederseniz sudo yazmama gerek yok ancak sizin için özellikle yazdım keza ben zaten root yetkisi ile terminaldeyim, ama Ubuntu distrosu zaten her halukarda “sudo” komutu kullanmanızı istiyor yani kesinlikle yanlış bir yazım değil.
- Github’un Kurulum Ayarları
Git’i sisteminize sorunsuz kurduktan sonra ayarları yapmanız gerekiyor.Bunun için Github hesabınız olmalı keza bu bilgileri kullanacağız yoksa oluşturmanızı rica ediyorum.
root@melic:~# git config --global user.name "kullanici.adi"
root@melic:~# git config --global user.email "mail@adresiniz.com"
yukarıda tırnak içerisinde yazdığım “kullanıcı.adi” ve “mail@adresiniz.com” yerine githubda oluşturduğunuz kendi kullanıcı ve mail adresinizi yazmalısınız.
- Repo Oluşturma (Çalışma Alanı)
Git’i kurup Github’i konfigüre ettiğimize göre artık bir çalışma alanı yani repo oluşturma zamanı geldi. Bunun için öncelikle bilgisayarınızda kullanacağınız bir dizin oluşturmalı ve onun içine girmelisiniz. Mesela “TestRepo” diyebiliriz hem dizine hem de reponuzun adına.
root@melic:~# git init TestRepo
“init” komutu ile “TestRepo” adında boş bir çalışma alanı yaratmış oluyoruz. Bu komut ile /root/TestRepo/.git/ altında boş bir çalışma alanı oluşacaktır.
Sizin kullanıcı ve distro durumunuza göre çıktı değişebilir mesela çalışma alanınız yukarıdaki komut ile /home/kullanici/TestRepo/.git/ ; o yüzden şaşırmayın ekranlarımız aynı olmaz ise.
- Bir tane README dosyası oluşturalım
Şimdi çalışma alanınızın içerisine bir şeyler koyalım değil mi?
İlk yaratmanızı önereceğim şey projenizin ya da çalışma alanınızın içeriğinin ne olduğunu açıklayabileceğiniz README dosyası olmalı. Bu dosya zaten default içeriği metin(text) dosyasıdır , ama isterseniz html de olabilir. Şimdilik biz text dosyası yaratalım.
Ben çalışacağınız dizinde olduğunuzu varsaymıştım ama değilsek de önemli değil ilgili dizine girelim. Nasıl mı ? İşte böyle :
root@melic:~# cd TestRepo
Doğru dizine girdiğiniz zaman yapmamız gereken README dosyasını oluşturmak.Bunun için “gedit” , “touch”, “echo” gibi komutları kullanarak bu dosyayı oluşturabilirsiniz. Ben basit ve anlaşılır olması için “echo” komutunu kullanmayı tercih ediyorum.
root@melic:~/TestRepo# echo "Bu bir test çalışma alanıdır" > README
Bilgisayarımızda README dosyası oluştu peki sonraki adım nedir?
- Reponuza Yani Çalışma Alanına Dosyaları Ekleme
İşte zurnanın zırt dediği yer burası, AMAN DİKKAT! Bu adımda her şeyi github sunucunuza yükleyip endekslediğimiz yer. Bu her şey dediklerimiz ilk defa karşı tarafa yüklemek istediğiniz metin dosyaları olduğu gibi yazılımınız veya programınız da olabilir, hatta halihazırda zaten sitenizde olan bir dosya bile olabilir. Artık yeni versiyon bilgisi ile artık çalışma alanına ekleyebilirsiniz.
Malum demin README dosyasını eklemiştik, hadi bir tane bir tane program dosyası ekleyelim mesela ad, ilkprogramim.cpp( çok basit bir c++ uygulaması yapacağız).
#include <iostream>
using namespace std;
int main(){
cout << "Hello World" << endl;
return 0;
}
Yukarıdka kodu bu dosyanın içerisine yazıp kaydetmelisiniz. Şu anda iki tane dosyamız oldu; biri README diğeri de ilkprogramim.cpp. Yazmamız gereken komut :
“git add”
Bu komut ile istediğiniz kadar dosyayı ya da dizini indexe atabilmeniz mümkün.Bu arada index dediğim şey esasında bir tampon alanı kastediyorum direkt repo içerisinde dosyalarınız yazılmaz.Var olan dosyaları kourmak ve versiyonlamak için bu gerekli bir süreçtir ve github tarafından otomatik yürütülür.
root@melic:~/TestRepo# git add README
root@melic:~/TestRepo# git add ilkprogramim.cpp
İşlem tamam … değil bir de onaylamak lazım :D
- Değişiklikleri Commit Etmek (İşlemek)
Tüm dosyaları gönderdikten sonra ya da çalışma alanımız olan TestRepo adı altında github repoya ekledikten sonra artık onayabiliriz yani “Commit” edebiliriz. Bu sisteme bu son yaptıklarımızı (ekleme/değiştirme/silme) kabul edip finalize ediyoruz ve sisteme son halini yükleyeceğiz demiş oluyoruz.
root@melic:~/TestRepo# git commit -m "Bu repo README ve ilkprogramim.cpp dosyalarını barındırır"
Evet artık Github hesabınıza girip lokal bilgisayarınızda hazırladığınız dosyalarımızı yüklemek için çalışma alanını oluşturmalıyız.
Aynı isimde yani TestRepo’yu bu yukarıda resimde gördüğünüz butonu tıklayarak oluşturabilirsiniz. Bu işlemi tamamladığınızda lokaldeki reponuzdaki dosyaları artık “push” edebiliriz.
Önemli Not: Komutu çalıştırmadan önce "kullanici adi" ve "TestRepo" path içerisinde doğru tanımlı olduğuna emin olun.
root@melic:~/TestRepo# git remote add origin https://github.com/KullaniciAdi/TestRepo.git
- Pushing Local Repository to GitHub Repository
Artık son adım tam senkronizasyon için “push” komutu ile lokaldeki repo muzu remote yani uzaktaki repomuza göndermeye geldi :
root@melic:~/TestRepo# git push -f origin master
Burada -f komutu Forcing yan güncellemleri Github Repo’nun üzerine güncellemek için kullandığımız bir özellik.Bunu yapmamın başlıca sebebi GitHub hesabınızda repo yani çalışma alanınızı oluştururken muhtemelen README.md dosyası oluşturdunuz, eğer bu özellik ile push etmez iseniz bir hata alacaksınız.
Bu hatanın esasında sebebi lokal reponuzun GitHub daki reponuzda var olan README dosyasını bilmemesi.
Bunun üstesinden gelebilmek için de “pull” komutu kullanmalısınız.
root@melic:~/TestRepo# git pull https://github.com/KullaniciAdiniz/TestRepo master
Esasında size hayatınızın en büyük tüyosunu vereyim . Unutmayın şu ritmi yakalarsanız hayatınız çok kolay olacaktır :
Add > Commit > Push > Pull > Tekrarla
Bu kadar basit ..