Bu yazıyı okumadan önce yapmanız gereken ilk şey, eğer bilmiyorsanız ve daha önce okumadıysanız, Temel Git Kullanımı yazısını okumak olmalıdır. Eğer okumaya devam ediyorsanız ilgili yazıyı okuduğunuzu farzedip, devam ediyorum. 🙂

GitHub/GitLab Nedir?

GitHub ve GitLab, Git sürüm kontrol sistemini barındıran bulut tabanlı hizmetlerdir. Aynı zamanda yazdığınız kodları ve yazılım projelerini depolayabileceğiniz hizmetlerdir.

GitHub ile GitLab Arasındaki Farklar

GitHub, yalnızca GitHub sunucularında çalışmanıza izin verirken GitLab, kendi sunucunuza kurarak veya GitLab sunucularında kullanabilmenize olanak tanır. GitHub açık kaynaklı projelerin barındırılmasını desteklese de, tamamen açık kaynaklı değildir. Özel/gizli depolar oluşturmak için ekstra ücret ödemeniz gerekir.

GitHub’da şu anda 3 adede kadar özel/gizli depo oluşturmak herkes için ücretsiz, ancak bunun üstüne çıkmak için ücret ödemelisiniz.. GitLab’te ise özel depo oluşturmak sınırsız ve tamamen ücretsiz. GitLab’te ayrıca CI/CD hizmeti ücretsiz olarak sunulur. GitHub’ta ise bu özellik 3. parti uygulamalarla sağlanabilir.

GitHub/GitLab Nasıl Kullanılır?

Kullanımları hemen hemen aynı olmakla birlikte yalnızca arayüzsel farklılıklar bulunmaktadır. Bu yazıda GitLab üzerinden anlatım yapılacaktır.

İlk olarak yapmanız gereken şey, tabii ki kullanacağınız servise üye olmaktır. 🙂 Daha sonra ise bir depo (repository) oluşturmaktır. Bunun için üst kısımda bulunan + simgesine tıklayın ve “New repository” seçeneğine tıklayın veya sağ tarafta bulunan “Yeni proje” düğmesine basın.

Ardından, gelen sayfada “Boş proje oluştur” seçeneğine tıklayarak bir sonraki aşamaya geçin. Gelen sayfada boşlukları kendinize uygun doldurmaya başlayın. Bu sayfa deponuzun adını, açıklamasını, herkes tarafından erişilebilir (Public) veya sadece izin verilenlerin erişebileceği (Private) bir depo mu olsun gibi bilgileri girebileceğiniz bir sayfadır. Bu sayfadaki ayarlamalar tamamen size kalmış.  

Artık deponuzu oluşturdunuz. Şimdi ise biraz daha detaya inelim.

Branch (Dal) Oluşturma

Branch’lar yani dallar, ana depoya dokunmadan üzerinde dilediğinizce değişiklik yapabileceğiniz bir iç depo oluşturmanıza yarar. Bir dal oluşturduğunuzda ana dalınızın bir kopyasını alır. Daha sonra işiniz bittiğinde oluşturduğunuz dalı ana dalınız ile birleştirebilirsiniz. Yeni bir dal oluşturmak için deponuzdaki main veya master yazan yerin yanında bulunan + düğmesine basın ve “Yeni dal” seçeneğini seçin.

Çekme İsteği (Pull Request) ve Birleştirme İsteği Oluşturma (Merge Request)

Pull Request ve Merge Request, bir dalda yaptığınız değişikliği başka bir dala aktarmayı talep etmenizi sağlar. Merge, yani birleştirme işlemi de istekte yapılan değişiklikleri dala aktarırsınız. GitHub’ta Pull Request olarak, GitLab’te Merge Request olarak karşılaşacağınız bu iki kavram aynı amaçla ve aynı şekilde kullanılır.

İstek oluşturmak için ilk olarak deponuzun bulunduğu sayfanın üst kısmında bulunan “Birleştirme isteği oluştur” düğmesine basmalısınız. İlgili alanları doldurduktan sonra birleştirme isteğini gönderebilirsiniz. Birleştirme işlemi içinse ilgili isteğe gelip sayfanın sonunda bulunan “Merge” düğmesine basmalısınız.

Komutlar

Şimdi ise Git komutlarıyla bu işlemleri nasıl yapabileceğimizi görelim.

git remote

Bu komut uzak depolara bağlanmanızı ve orada çalışmanızı sağlar. git remote add takmaAd depoAdresi şeklinde kullanılır. git remote yazarsanız da şu anda hangi uzak depoya bağlı olduğunuzu gösterir. 

Örnek Kullanım: git remote add https://gitlab.com/prdsmehmetstc/test-project.git

git branch

Bu komut dalları yönetmenizi sağlar. git branch dalAdi şeklinde yazarak yeni bir dal oluşturabilirsiniz. Oluşturduğunuz dala geçiş yapmak için ise git checkout dalAdi yazmalısınız. git branch -d dalAdi yazarak oluşturmuş olduğunuz dalı silebilirsiniz.

git branch --all yazarak oluşturulan bütün dalları listeleyebilirsiniz. Dallar arası farkları görmek istiyorsanız, git diff dal1 dal2 yazabilirsiniz. git merge dalAdi yazarak dalları birleştirebilirsiniz.

git push

Bu komut ile yerelde bulunan commit’leri uzak depoya aktarabilirsiniz. Kullanımı git push uzakDepoTakmaAdi uzakDepoBranch şeklindedir. 

git stash

Dallar arası geçişler yapmanız gerekiyorsa ve halihazırda çalışıyor olduğunuz dalda yaptığınız ancak henüz commit’lememiş olduğunuz değişiklikler varsa ve o yaptığınız değişikliklerin kaybolmasını istemiyorsanız bu komutu kullanmalısınız. git stash list yazarak geçici olarak kaydedilen değişiklikleri görebilir, değiştirdiğiniz dalda işinizi bitirip eski dalınıza geri döndüğünüzde git stash pop yazarak kaldığınız yerden devam edebilirsiniz.

git clone

Bu komut, yerelinizdeki veya uzak bir depoyu kopyalamanızı sağlar. git clone /depoDiziniYolu şeklinde yazarak yerelinizde bulunan depoyu, git kullaniciadi@host:kullaniciadi/depoAdi.git (Örnek Kullanım: git clone git@gitlab.com:prdsmehmetstc/test-project.git) şeklinde yazarak da uzak depoyu kopyalayabilirsiniz.

git pull

Bu komut uzak depodaki -varsa- değişiklikleri yerel depoya çekerek yerel depoyu güncellemenizi sağlar.

Faydalanabileceğinizi düşündüğüm ekstra kaynakları da aşağıda listeliyorum. Kaynakların hepsinin İngilizce olduğunu baştan söyleyeyim. 🙂