Ali GÖREN

Bugün Öğrendiklerim – Git

Bugün enteresan bir şekilde güzel şeyler öğrendim. Aslında dün de öğrendim. Github’ı sadece ve sadece master’a dosya push etmek adına kullanan birisi olarak şimdilerde branch ne kadar da gerekli der oldum. Bu yazıda özellikle branchleri anlatmak isterim. Çünkü master ve branchler gerçekten çok önemli şeyler.

Yeni Bir Git Reposu:

Bulunduğunuz dizini içereceğini bilerek git init komutunu vermeniz yeterlidir.

Uzak Git Reposunu Clonelamak

Bu en çok ihtiyaç duyduğumuz şeylerden birisi olabilir. Farklı amaçlarla bunu yaparız. Çoğu zaman dosyaları direkt indirebiliriz. Ancak neden tarayıcıyı açalım ki? Tabii bir de projelere katkıda bulunmak da var. Neyse bu işlem şöyle oluyor:

git clone https://uzak-git-deposu

Şaka değil bu kadar basit.

Dosya Ekleme

Yapılan çalışmaların artık ortak çalışma alanına aktarılması gerekmektedir. Öncelikle dosyaların eklenmesi şarttır. İki yöntem var.

Tamamını Ekleme:

git add *

Spesifik Dosyalar Ekleme:

git add main.rb lib.rb file.rb

Yöntemlerden dilediğinizi seçebilirsiniz ki bu size kalmış bir şey.

Eklenen Dosyalara Mesaj Eklemek

Bu yöntemle hangi dosyalar çalışmada etkilenmiş yani değişikliğe uğramışsa o dosyalar bu mesajla repoya gönderilir. Örneğin şöyle düşünelim, info.py dosyasında bir değişiklik yaptınız. Bu değişiklik Person adında yeni bir class’ın eklenmesi olabilir. O zaman commit’e şu işlemi yapabilirsiniz:

git commit -am "Add person class"

Değişiklikleri Yayına Almak

En önemli mevzu bu bence. Herkesin katkı yaptığı bir projeye localden katkı yapmanız bir şeyi değiştirmez. Önemli olan bu katkının asıl repoya & sizin kendi reponuza aktarılmasıdır. Eğer reponuz yeni ise varsayılan olarak master isimli branch’e sahipsinizdir. Bu arada branch dal ya da dallanmak demekmiş. Neyse değişiklikleri yayına almak yani uzak repoda göstermek için şu komutlar işimizi görebilir:

git push origin master

Mümkün olduğunca master branch rahatsız edilmemeli. Oraya publish edilen yapı aktarılmalı. Geliştirme aşamalarında kullanılan kalabalık dosyalar başka branchlerde yer almalı.

Hangi Branch’e Bağlıyım?

Bu da önemlidir. Olur da farklı bir branch’te çalışırsınız aman diyim. Bunun için git branch komutu yeterlidir. Bu komutla şu anda hangi branch’te çalıştığınızı görebilirsiniz.

Yeni Branch Oluşturma

Bu işlem sanırım en zevkli işlem. Basit bir komutla dev isimli yeni branch oluşturabilirsiniz:

git checkout -b dev

Branchler Arasında Dolaşma

Eğer yapacağınız değişiklikler belirli bir branchte yayınlanacaksa o branch’e geçiş yapmanız gerekiyor. Bunun için de işlem yine çok basit. Örneğin şu anda master branch’tesiniz ve dev isimli branch’e geçeceksiniz:

git checkout dev

Oluşturulan Branch’i Yayınlamak

Eğer branch, uzak repoya gönderilmediyse o branch sizden başkası için görülebilir olmayacaktır. Branch’i yayınlama işlemini yukarıda oluşturduğumuz dev isimli branch’i baz alarak gerçekleştireceğiz.

git push origin dev

Artık branch’imiz yayında olacaktır.

Güncelleme

Siz bi uyudunuz falan sabah oldu işe gittiniz geldiniz o da ne bir sürü değişimler oldu. Ama bunlar bilgisayarınızda yok. Meraklanmayın. Basit bir komut işinizi görüyor:

git fetch & git pull origin master

İşime Yarayan Komutlar:

Yapılan işlemlere dair logları git log yazarak alabiliyorum. Eğer yapılan değişikliklere dair bir durum alacaksam da git status yaparak eklenmemiş olanları görebilirim.

Bugün daha çok şeyler öğrendim bunda @hwclass hocama teşekkür etmem gerekiyor. Onlar da başka bir yazının konusu olsun.