Yeni Başlayanlar için Git 101
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.