Kısaca Git

Bu yazının amacı, sıkça kullanılan git komutlarını paylaşmak ve kendi notlarımı aktarmak.

GitHub adresinden bir projeyi yerel makinamıza çekip, değişiklikler yaptıktan sonra gönderene kadar hangi komutları giriyoruz hızlıca bakalım.

Üzerinde çalışacağımız proje eğer farklı bir repoda ise, projeyi fork seçeneği ile kendi repomuza çekiyoruz. Şimdi kendi repomuz üzerinden bağlantısını kopyalayalım. Sonra makinamızda, projeyi kuracağımız dizinde, git bash ekranını açalım.
(Eğer kendi reponuz üzerinden bir proje yürütmek istiyorsanız, Create a new repository seçeneği ile bir repo oluşturup onun bağlantısını kopyalayın.)

$ git clone (link)

Proje artık yerelde olduğuna göre. Üzerinde çalışmaya başlayabiliriz. İlk önce cd projeadi komutu ile terminalde projenin içine giriyoruz. Bu işlemden sonra kimin yaptığını bildirmek için isim ve mail adresi giriyoruz.
$ git config --global user.name "Hatice Ergün"
$ git config --global user.email "haticergun5295@gmail.com"

Proje içerisindeki farklı klasörlere giriş yapıp farklı dosyalar oluşturabiliriz veya olanı silebilir, güncelleme yapmak isteyebiliriz. Bu gibi değişiklikleri yaptıktan sonra, bash ekranına geçelim.

$ git add index.html şeklinde, sadece bir veya birkaç dosya ekleyebiliriz.
$ git add * ile dosyaların hepsi eklenir.
$ git add . ile (dosya, klasör) yaptığımız tüm değişiklikleri git’e ekliyoruz.

$ git status ile kontrol etmek için durumumuza bakalım. Bu komutla birlikte durum bilgisi alabiliriz. Sonradan eklenen dosyalar için yeşil, eklenmemiş ama var olan dosyalar için kırmızı renk kullanılmaktadır.

$ git diff ile yaptığımız farklılıkları listeleriz. 
$ cd klasör_adı klasörler arası gezinmek için bu komutu kullanırız.

Şimdi commit ile git’e eklediğimiz dosyaları onaylayalım ve yaptığımız değişiklikler için bir mesaj iletelim.

$ git commit -a tüm dosyaları commit etmektir.
$ git commit -m "index sayfası değiştirildi" değişikliği mesaj ile ilettik.
$ git commit -am "index değiştirildi" iki işlemi bir arada yapmış olduk. İki satır komut girmek yerine tek satır ile iki işlemi yaptık.

Şimdi değişiklikleri GitHub’a gönderelim.

$ git push origin master komutu ile GitHub üzerindeki projenin master dalına değişiklikleri gönderdik. Origin ise linkin adı yerine yazılır. Tekrar link vermek yerine kullanılır.

Burada proje bizim kendi repomuza eklenmiş oldu. Eğer bu yaptığımız değişiklikleri projenin esas sahibine ulaştırmak istiyorsak, GitHub üzerinde pull request seçeneği ile istek atıyoruz.
(Eğer kendi reponuzda çalıştıysanız bu işleme gerek yok. Sizin reponuzda projenin esas sahibi sizsiniz.)

Projeyi Güncelleme

Github üzerinde projede değişiklikler olduğunda yerel makinamıza değişiklikleri çekmek için;
$ git fetch komutunu giriyoruz. Daha sonra
$ git merge origin/master komutu ile master dalına yenilikleri ekliyoruz.
$ git pull origin dal_ismi GitHub üzerindeki dalı bizim yereldeki dala merge etmeyi sağlar. Güncellemeler olduğunda,yenilikleri elimizdeki projeye dahil etmek için bu komutu kullanırız.

Dallanma

GitHub üzerindeki bir projeyi farklı bir dala çekmek için,
$ git fetch bu komutla, GitHub’daki değişiklikler farklı bir dala alınır.
$ git merge FETCH_HEAD bizim yereldeki master dalımıza projenin güncel halini ekledik. Yereldeki master dalının adı head.

$ git branch mevcut dalları listeler.
$ git branch Yenidal_ismi yeni dal oluşturmak için isim verilir.
$ git checkout Yenidal master dalından Yenidal’a geçtik. 
$ git branch -d Yenidal oluşturulan yeni dalı siler (Yerelde).
$ git branch -dr Yenidal oluşturulan yeni dalı siler (Yerelde ve GitHub’da).
(Silme işlemlerini yaparken master dalında olduğunuzdan emin olun.)

Farklı dallar oluşturup, bu dallarda projeleri farklı yapılandırabliriz. İki farklı dalı birleştirebiliriz.
$ merge Yenidal ile Yenidal’daki değişiklikler master dalına aktarılıp birleştirildi. Yenidal ile ilgili işlem yapılacağı zaman master dalına geçmiş olmamız gerekir. Dolayısıyla birleştirme işlemi de master dalındayken yapılır.

İyi çalışmalar.

Daha detaylı bilgi için;
1) https://legacy.gitbook.com/book/vigo/git-puf-noktalari/details
2) https://aliozgur.gitbooks.io/git101/content/bolum_1_-_baslangic/versiyon__kontrolu_nedir.html
3) https://try.github.io/levels/1/challenges/1

Like what you read? Give Hatice Ergün a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.