Git Komutları ve Kullanımı

Git

2 Sebepten dolayı kaynak kontrol sistemine ihtiyaç duyarız;

  • Kaynak kodunuzun değişimlerini takip etmek ve bunu yönetebilmek
  • Birlikte kod geliştirmek.

Git Komutları

Git bu ihtiyaçları karşılamak hazır araçlara sahiptir.

Bir klasör oluşturup içerisinde git init fonksiyonu çalıştırdığımızda .git altında ufak bir dosya yönetim sistemi oluşturduğunu görebilirsiniz. Bu klasörün içerisinde dosyalarınızın state’lerini tutacaktır. Bu dosyalar arasındaki farklar, commit sırasındaki kesitler hepsi bu dosyalar içerisinde tutulmaktadır.

.gitignore dosyası git’in dosya sistemine katılmasını istemediğiniz binary vb dosyalar için kullanılır. Örnek dosyalar https://github.com/github/gitignore linkinden erişebilirsiniz.

Git Veri Akışı

Aşağıdaki resimden git’deki veri akışının nasıl gerçekleştirildiğini görebilirsiniz. Aşağıdaki komutlarla bunun nasıl çalıştığına bakalım.

Untracked Files

a1.txt ve a2.txt dosyalarını Working Dir eklediğimizde bunları Index(cache) eklemen gerektiğini git status fonksiyonu ile tracked edilmemiş dosyaları görebililirsiniz.

Staging

git add metodu ile a1.txt , a2.txt dosyasını Staging seviyesine gerçirmiş olduk.

Git Local Operations

İstediğiniz dosyayı Staging durumundan çıkarmak için git reset HEAD komutunu kullanmanız yeterli.

Modifying Local File

a1.txt dosyasının içerisine birşeyler değiştirdim. git status ile baktığım dosyanın local tarafta modified olduğunu git diff ile de baktığımda dosyada hangi alanların değiştiğini görebilirim. git checkout — a1.txt ile yaptığınız değişikliği geriye alabilirsiniz.

Commit (Saving Local Repo)

git commit -m ‘msg’ komutu ile dosyalarınızı Local Repo’nuzda kaydedin..

Push (Saving Remote Repo)

git push origin master komutu ile Uzaktaki repo üzerine kayıt yapabilirsiniz.

Pull (Get From Remote Repo)

Yanlız Push yapmadan önce bir pull edin çünkü başkaları Remote Repo’da değişiklikler yapmış olabilir önce değişiklikleri alıp sonrasında kendi değişikliklerinizi yapmanız gerekir.

Gerçek Dünya Conflict/Merge

Gerçek dünyada siz bir dosyada bir güncelleme yaparken başka birisi o dosyayı silmiş, ismini değiştirmiş olabilir. Bunun için bu farklılıkları çözmemiz gerekir. Oluşabilecek durumlar.

1nci tip Sorun: İki kişinin aynı dosyada değişiklik yapması . 
Çözüm: Bendeki kaynağı kullan, Ondaki kaynağı kullan, İkimizdekini mantıklı bir şekilde gözle birleştir.

git pull komutunu çalıştırdığınızda CONFLICT oluşur. Dosyada <<<<<HEAD olarak gösterilen kısımlar Local değişiklik === Remote’dan gelen değişiklikleri görebilirsiniz.

2nci tip Sorun: Birisinin çalıştığı dosyaları ,diğer kişinin silmesi
Çözüm: Bendeki kaynağı kullan, Ondaki kaynağı kullan..

Değişikliği yapıp direk push etmeye çalıştığımda (fetch first) uyarısını aldım.

2nci tip sorunda AutoFix işleminin yapılamadığını görebilirsiniz. Bunun için kendiniz dosyayı local repo’dan çıkarıp tekrar commit yapmanız gerekir.

Değişikliklerin Tarihçesini ve Detayını Gör

git logs komutu ile değişikliklerin tarihçesini görebilirsiniz..

git shows komutu ile ilgili komitte yapılan değişiklikleri görebilirsiniz..

Git Branch Oluşturma

Genelde projelerde master, development, bugfix, release, poc(experiment) amaçlı dallar oluşturulur. Bu dalları oluşturmak git’de oldukça basittir .

git branch komutları ile branch’lerinizi kolay bir şekilde yönetebilirsiniz..

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.