Git Hakkında Kısa Bilgi

Ümit KOÇ
5 min readDec 11, 2021
Git

Git kurulumundan önce sizlere git hakkında bilmeniz gereken kavramlar ve git teknolojisinin yazılım alanındaki yeri sizlere anlatacağım.

Git hakkında Google’da araştırma yapıldığında ilk karşımıza çıkan tanım “versiyon kontrol sistemi” olarak belirtilmektedir. Peki versiyon kontrol sistemi dedikleri tam olarak ne olabilir?

Versiyon kontrol sistemi kısaca bir dosyanın oluşturma tarihinden başlayarak istediğiniz tüm durumların takip edebildiğiniz bir yapı olduğu anlamına gelmektedir. İstediğimiz bir yapının kayıt altına tutulabilmesi için bir ‘Commit’ işlemi yapılması gerekmektedir.

Ne kadar iyi tasarlarsak yani ne kadar çok Commit işlemi yapıp geri dönebileceğimiz noktalar oluşturursak, yönetimi kolay bir yapı tasarlamış oluruz.

İlk önce google aramlarında git yazıp arayalım ve ilk çıkan git resmi web sitesine giriş yapalım.
 Git download olan linke tıklayalım ve çalıştıralım.
 Ondan sonra da kurulum için ileri tuşlarına basalım kurulumu bitirelim. Kurulumu tamamladıktan sonra proje üzerinde yaptığımız tüm değişikliklerin tutulabilmesi için name ve email bilgilerimizin konfigürasyonunu yapmamız gerekiyor. Başlat tuşuna basıp git yazalım ve git cmd çıkan uygulamayı tıklayalım. Aşağıdaki gibi kendinize ait isim ve email b

Git download olan linke tıklayalım ve çalıştıralım.

Kurulum işlemlerinde ileri yaparak kurulumu bitirelim. Kurulumu tamamladıktan sonra proje üzerinde yaptığımız tüm değişikliklerin tutulabilmesi için name ve e-mail bilgilerimizin konfigürasyonunu yapmamız gerekmektedir. Başlat tuşuna basıp git yazalım ve git cmd çıkan uygulamayı tıklayalım. Aşağıdaki gibi kendinize ait isim ve e-mail bilgilerinizi belirtelim.

Linux işletim sistemi için ‘sudo apt install git’ yazalım ve kurulumu tamamlandığında aynı şekilde terminalde user.name ve user.email bilgilerimizi girelim.

Kurulum işlemlerimiz tamamlandığına göre şimdi de temel olarak bilmemiz gereken bazı kavramları öğrenelim ama öncelik olarak bir klasör oluşturup sonra da bir README dosyası oluşturalım. Bunun için terminal komutlarımızı yazalım.

Klasör oluşturma komutumuz ‘mkdir <klasör_adı>’ sonra da klasör içine girelim ve bir Git projesi olduğunu belirtelim.

Klasöre girmemiz için komutumuz ‘ cd <klasör_adı>’ ve git projesi olduğunu belirtmemiz için yazacağımız komut ‘git init’.

Klasör içine .git klasörü oluştuğunu görüyoruz. Şimdi de bir README.md dosyası oluşturalım. Komutumuz ‘ . > README.md ‘.

Branch

Projenize farklı bir özellik eklemek istiyorsunuz veya projenize herhangi bir değişiklik yapmak istiyorsunuz. Yaptığınız her değişiklik projenizi patlatma durumu gerçekleşemez mi? Patladı diyelim, o zaman daha önceki yaptığımız değişikliğe nasıl geri dönebiliriz ? Bunun için branch işlemi uygulatmamız gerekiyor.

Git aslında ağaç mantığı ile çalışmaktadır. Branch ise kelime manası dallanma anlamına gelmektedir. Bu da demektir ki ağacın her dalları bizim için bir branch olduğunu söyleyebiliriz.

İlk git projesine başladığınızda otomatik olarak bir ‘master’ branch oluşturuluyor. Daha önce ana dal olarak master oluşturuluyordu. Fakat master ismi anılırken ırkçılığı çağrıştırdığı gerekçesiyle artık ‘main’ dalı isimlendirilmesine karar verildi. Detaylı bir bilgi için şu linke girmeniz yeterlidir.

Şimdi ana dal olarak main olduğunu belirtelim. Komutumuz ‘ git branch main -m main’. Birden fazla branch oluşturabilirsiniz . Bunun için ‘git branch <name>’ komutu verdiğimizde verdiğimiz isme göre bir branch oluşturur. Herhangi bir branch geçiş sağlamak için ‘git checkout <name>’ komutu yazmamız yeterlidir. Branch komutların detaylı bir şekilde incelersek şu şekilde komutlarımız vererek öğrenmeye çalışalım.

git branch : Oluşturduğumuz branch isimleri listeler

git branch –v : Şu an ki branch üzerinden en son commit bilgisini getirir.

git branch –va: Şu an ki branch üzerinden ve remote olarak kaydettiğimiz en son commit bilgisini getirir.

git branch –d <name> : <name> isimli branch siler.

git branch –dr <name> : remote olarak kayıtlı olan <name> isimli branch siler.

Branch işleminden sonra Github ‘a girelim ve orada yeni bir repo oluşturalım. Repomuzda README dosyası bulunsun diye işaretleyelim. Sonra da üstte köşede belirtilen ‘Code’ butonuna tıklayalım ve SSH kısmına tıkladıktan sonra aşağıda belirtilen linki kopyalayalım.

Terminalde ‘ git clone <copy_link>’ yazıp indirilmesini bekleyelim. Sonra da örnek dosyalar klasör içinde oluşturalım. Daha önceki öğrendiğimiz branch komutları ve commit komutları ile dosyaların üzerinden uygulayalım.

Staging Area

Projemiz neredeyse tamamlandı. Asıl önemli olan kısım bu projemizi remote olarak nasıl yollamamız gerektiği. Bunun için projemizi paketleme işlemi gerçekleştirmemiz gerekiyor. Projemizde bulunan tüm dosyaları yollamamız için gerekli adımları uygulayalım:

1- Tüm dosyaları paketleyebilmemiz için ‘git add .’ komutu yazalım. Yaptığımız tüm değişiklikleri ekle anlamına gelmektedir.

2- Daha önce de belirttiğimiz gibi bir projenin bir önceki adımları inceleyebilmemiz veya sonraki adımlarına geçebilmemiz için commit işlemi yapıyorduk. Şimdi de bu paketleme aşamasında da yorum eklememiz gerekiyor. Bunun için yazmamız gereken komut ‘git commit –m “….”

3– Hangi branch üzerinden oluşturduysak veya oluşturduğumuz projeyi istediğimiz branche yollayabilmemiz için ‘ git push origin <branch_name> ‘ komutu yazalım ve projemiz yollanmış oldu.

Bu Staging-Area hem remote hem de local olarak da çalışmaktadır.

Yolladığımız paketin içindeki dosyayı geri almak istediğimizde ‘ git reset HEAD <dosya_uzantısı>’ komutu verebiliriz. Diğer komutlar da şunlardır:

1- ‘ git rm –f “<dosya_uzantısı>” ’ projedeki dosyayı tamamen silmek için gerekli komut.

2- ‘ git commit -amend –m “<commit_message>” ’ son commit mesajı değiştirebiliriz.

3- ‘git checkout — “<dosya_uzantısı” ‘ dosya uzantısının Staging-Area ‘da olmayan değişikliklerini silip ve dosyayı commit edilen son noktaya geri döndürebiliriz.

4- ‘ git reset -hard ‘ projede yapılan her değişikliği silip en son commite geri dönebilmek için verilen komut.

5- ‘git status ‘ proje de en son yaptığımız değişiklikleri görebilmemiz için verilen komut.

Git ‘in güzel bir tarafı ekip içerisinde de ortak proje yürütülebiliyor olmasıdır. Sizin çalıştığınız branch üzerinde yaptığınız değişiklikler diğer ekip arkadaşlarınızın da branch kısmında değişiklik uygulanması gerekiyor. Ya da senin şu an üzerinde bulunduğun branch ın üzerinde uygulanması gereken değişiklikleri getirmesi gerekiyor. Bunun için ‘git fetch’ komutu verdiğimizde, yeni gelen değişiklikler hakkında bilgilendirme yapar.

Senin yazdığın kodlamalar veya değişiklikleri gönderdiğinde, ekip arkadaşlarının da remote olarak uyguladığı değişiklikleri çakışmaması gerekiyor ve branch içindeki değişiklikleri karşılaştırıp ona göre branchı güncel tutmamız gerekiyor. Bunun için ‘git diff ‘ komutu yazmamız bizim için yeterlidir.

Rebase ve Merge

Çok fazla dallarımız oluştuğunu ve bu dalların da birleştirmemiz gerektiğini varsayalım. O zaman yapabileceğimiz iki faklı komutlarımız vardır. Rebase işleminden örnek vermek gerekirse;

Şu an üzerinde durduğumuz branch master olsun develop branchı master branch birleştirmemiz için ‘git rebase develop’ yazmamız yeterlidir. Bu rebase kullanımı şu şekilde düşünebiliriz. Master branch ta en son commitlediğimiz ile develop dalında ilk commitlediğimiz ortak ise iki dalı birleştirmemize yardımcı olur.

Eğer ortak bir commit bulunmasaydı ‘git merge develop ‘ yazmamız gerekiyordu.

Git hakkında daha detaylı bilgiler edinmeniz için Git ‘in resmi sitesinde sizlere öğrenmeniz için gerekli dokumanı sunmaktadır.

--

--