Yeni Başlayanlar için Git 101

Murat Can Bur
5 min readDec 14, 2015

--

Git Nedir?

Android uygulama geliştirdiğim ilk dönemleri hatırlıyorum da versiyon kontrol sistemleri ile karşılaşana kadar proje geliştirirken, kodlarımızı bir klasörde yedekliyorduk. Tabiki de bu yedeklerin sayısı işlemler kontrolden çıkmaya başlıyordu.Ya da projenin herhangi bir yerinde yapılan değişikliklerin kimler tarafından ne zaman yapıldığını takip etmek ciddi anlamda zor oluyordu.

Git; yazılım geliştirme süreçlerinde kullanılan, hız odaklı, dağıtık çalışan bir sürüm kontrol ve kaynak kod yönetim sistemidir.

Bu sorunları versiyon kontrol sistemi olan Git’ i kullanmayı öğrendikten sonra aştık.

Bu yazı boyunca Git ile ilgili terimlerin hepsinin orjinal ifadelerini kullanmaya özen gösterdim. Çünkü bu terimlerin Türkçe’ lerini kullanmaktan ziyade olduğu gibi öğrenmeniz sizin Git kullanma alışkanlığınızı pozitif yönde etkileyecektir.

Yeni bir Repository (Repo) oluşturma

Git kullanımı öğrenim aşamasında ilk gerçekleştirmemiz gereken adım, seçmiş olduğumuz depolama servisi üzerinde bir adet Repository oluşturmaktır. Örnek olarak Github üzerinde bir adet Repository oluşturalım.

Git ayarlarının yapılması

Kullanmış olduğunuz işletim sistemine bağlı olarak Git kurulumunu gerçekleştiriniz. Aşağıda paylaştığım link üzerinden uygun olan versiyonu bilgisayarınıza indirebilir ve kurulumunu gerçekleştirebilirsiniz.

Kurulum işlemini gerçekleştirdikten sonra git yapılandırmasını yapalım. Burada isim ve mail bilgilerini düzenlememiz yeterli olacaktır.

git config — -global user.name “Murat Can BUR”

git config — -global user.email “muratcanbur@gmail..com

Git Cloning

Yeni repo’ yu oluşturduktan sonra, reponun site üzerindeki ilgili linkini alıp, kendi çalıştığımız bilgisayarımıza klon işlemini gerçekleştirelim.

git clone https://github.com/muratcanbur/hello-world-git.git

Git Comitting and Pushing

Oluşturmuş olduğumuz repo’ yu kendi bilgisayarımıza indirdikten sonra, sıra geldi commit ve push işlemlerinin ne olduğunu ve nasıl gerçekleştirildiğini öğrenmeye.

Local’ de bulunan repo’ da bir değişiklik yapacağım ve index.html adında bir dosya oluşturacağım. Bu işlemi tamamladıktan sonra git status komutunu kullanarak repo’ mun anlık olarak local’ de bulunan durumunu inceliyorum.

git status

Bu komut çalıştırıldıktan sonra gelen ifade ile görüyorum ki, repo içerisinde track edilmeyen dosyalar bulunmakta.

Bu dosyaları git add komutu ile git içerisine eklemeliyiz.

git add *

git add “dosya adı”

Bu komutu çalıştırdıktan sonra şöyle bir dönüt elde etmemiz gerekmektedir.

git add komutundan sonra * karakterini kullanırsak o an için track edilmeyen dosyaların hepsi birden eklenir. Sadece bir dosyayı eklemek istiyorsak git add komutundan sonra dosya adını yazmamız gerekmektedir.

Bu işlemi yaptıktan sonra bu değişikliği kayıt altına almamız gerekmektedir. Yani commit ‘ lememiz gerekiyor.

git commit -m “commit mesajı”

Bu işlemin sonucunda dosyamız yerel repoya atıldı. Ancak henüz remote repo’ya ulaşmadı. Bu işlemin gerçekleşmesi için push işlemini gerçekleştirmemiz gerekmektedir.

git push origin branch_name

Bu işlemden sonra Github sitesini ziyaret ederek orada ki repo’ nun son durumunu kontrol edelim.

Pulling Changes

Uzak repo’ da bazı değişiklikler yapıldığını varsayalım. Genel de bu işlem birden fazla kişinin yer aldığı projelerde çok sık karşılaşılan bir durumdur.

Bu değişiklikler kendi local repo’ muza indirmek için git pull komutunu kullanıyoruz.

git pull

Branching

Git varasayılan olarak master branch yapısı ile gelir. (origin/master) Projenizin durumuna göre isterseniz farklı branch’ ler oluşturmakta özgürsünüz. Bunu yapabilmek amacıyla kullanacağınız git komutu ise;

git branch branch_name

Branch olusturduktan sonra o branch’ e geçmek için git checkout komutunu kullanmamız gerekmektedir.

git checkout branch_name

Bu branch üzerinde yaptığımız değişiklikleri ilk olarak commitlememiz daha sonra da pushlamamız gerekmektedir.

Merging

Oluşturduğumuz branchleri genellikle master veya dev gibi ana branch’ lere merge etmemiz yani birleştirmemiz gerekmektedir. Bunun için hangi branch ana branch ise o branch’ e geçip şu komutu çalıştırmamız yeterli olacaktır.

git merge branch_name

Burada branch_name olarak ifade edilen kısım merge edilmek istenen branch’ i temsil etmektedir.

Gitignore

Bazen Git reposunda göndermememiz gereken bazı dosyalar olabilir Bu dosyalar IDE’ ler tarafından üretilen build dosyaları olabileceği gibi aynı zamanda başkaları tarafından görünmesini istemediğimiz hassas bilgileri içeren dosyalar da olabilir. İşte bu şekilde ki dosyaları uzak repomuza göndermemek için .gitignore dosyasına tanımlamız gerekmektedir.

Bazı Yararlı Bilgiler

Yazmış olduğumuz commit’ lerin listesini görmek istiyorsak git log komutunu kullanabiliriz.

git log

Bu komutu kullandıktan sonra karşılaştığımız sonuç biraz uzun görünebilir. Bütün commit listesinin tek bir sırada daha düzgün görünmesi için

git log — pretty=oneline

Bu yazıda genel olarak Git kullanımın temellerini anlatmaya çalıştım. Buradan sonra öğrenilecek, öğreneceğimiz bir dolu konu bulunmaktadır. Bunlardan bir tanesi de git branch yapısının nasıl olması gerektiğidir. Sanşlınız ki bu konuda bir blog yazısı yazmıştım. Bu yazının linkini de aşağıda paylaşıyorum.

Umarım herkes için yararlı bir yazı olmuştur.

--

--

Murat Can Bur

Blogger , Public Speaker, Mobile Engineering Team Lead @Trendyol