Git İle Versiyon Kontrolü

Berke Sayın
3 min readMar 10, 2022

--

Talk is cheap, show me the code! — Linus Torvalds

Gerek bir takımın parçası halinde gerekse bireysel olarak bir projeye başladığımızda süreç içerisinde sürekli ekleme yaparak, üzerine koyarak devam ediyoruz ve en sonunda ortaya bir uygulama çıkarıyoruz. Proje üzerinde çalışırken yeni özellikler deniyoruz, istediğimiz zaman geriye dönebilmek ve kod bloklarında hata yapmaktan, bozmaktan korkmadan rahatlıkla değişiklik yapabilmek istiyoruz. Bütün bunlar ürünün sürekli gelişen ve değişen ihtiyaçlar doğrultusunda sürdürülebilir ve takip edilebilir olmasını sağlıyor. Peki bu işlemleri nasıl gerçekleştiriyoruz?

Herkese merhaba. Yazılım geliştirme süreci için versiyon kontrolü projelerin devamlılığı açısından çok önemli. Ben de bu çerçevede Git ve GitHub kullanımı ve versiyon programlama ile ilgili bir yazı serisi hazırlamaya karar verdim. Serinin ilk yazısında “Software Configuration Items”, “Software Configuration Management” ve “Version Control Systems” kavramlarını açıklayıp Git’i neden kullandığımızdan bahsedeceğim. Keyifli okumalar…

Software Configuration Items(SCI) Nedir?

“Software Configuration Items” aslında herhangi bir uygulamayı geliştirme esnasında yazılımın tüm bileşenlerini temsil eder. Bunlar programlar, veriler, dökümanlar, kod blokları, dosyalar ve yazılımın ihtiyaç duyduğu tüm ayrıntılardır. Mesela web uygulaması geliştirirken proje klasörü içerisindeki bir JavaScript dosyası SCI örneğidir. Biz geliştirme süreci içerisinde bu item’larda(bileşenlerde) sürekli değişiklikler yaparız. Başlangıçtan en sona kadar SCI dediğimiz item’lar sürekli olarak değiştirilir. Bu çerçevede biz değişikliklerin sağlıklı bir şekilde koordine edilmesine ihtiyaç duyarız. İşte bu noktada “Software Configuration Management” denilen diğer bir kavram devreye giriyor.

Software Configuration Management(SCM) Nedir?

“Software Configuration Management” ise aslında SCI denilen bileşenlerde yapılan değişikliklerin saklanması, takip edilmesi ve raporlanması sürecinin bütünüdür. Dolayısıyla SCM araçları koordine edici sistemlerdir. Diğer bir ifadeyle bu araçlar bize yazılımın gelişim ve değişim sürecini görüntüleyebilme yeteneği kazandırır. Örneğin bir takımın üzerinde çalıştığı bir projeyi düşünelim. Kim, ne zaman hangi kod bloğunu ekledi veya nerede değişiklikler yaptı, projenin tamamlanma sürecinde en baştan sona kadar hangi aşamalardan geçildi gibi soruların karşılığını biz SCM araçları ile öğrenebiliriz. Ve burada inceleyeceğimiz Git bir SCM aracıdır.

Version Control Systems(VCS) Nedir?

Yazdığımız kodlar SCI denilen bileşenlerde tutulur. Bu bileşenlerin koordine edilme süreci ise SCM(Software Configuration Management) olarak adlandırılır. Son olarak bahsedeceğim kavram da “Version Control Sytems(VCS)” denilen yapıdır.

Versiyon Kontrol Sistemleri, herhangi bir program veya programlama dilinden bağımsız, projenin farklı versiyonlarını elde edebilme ve yönetebilmeyi sağlayan yazılımlardır. Git’i de burada bir Versiyon Kontrol Sistemi olarak ele alacağız.

Git and Version Control

Nereye Git’iyim?

Git, yazılım geliştirme süreçlerinde kullanılan kaynak kod yönetim sistemidir. İlk sürümü Linux çekirdeği’nin geliştirilmesinde kullanılmak üzere 2005 yılında bizzat Linus Torvalds tarafından tasarlanıp geliştirilmiştir.

Uygulama geliştirme sürecinde Git ile çalışırken amacımız projeyi versiyonlamaktır. Şimdi ise Git’i biraz daha yakından inceleyelim.

Yazılımcı Olarak Git’ten Beklentimiz

Öncelikle Git kullanmadan önce nasıl yapıyorduk, bunu düşünelim. Biz Git kullanmadan da projelerimizi oluşturabiliyoruz. Git bize proje oluşturmada değil projeyi yönetme aşamasında yardımcı oluyor. Git olmadan bir proje klasörü oluşturduğumuzu varsayalım. O klasör içerisinde projemize ait dosyalarımız, kodlarımız bulunuyor. Biz de zamanla bu dosyalarda değişiklik yapıyoruz. Projemize bir şeyler eklerken veya çıkartırken projemizi bozmaktan, geriye dönememekten korkuyoruz. Bu gibi durumların önüne geçmek için her önemli değişiklikte ana klasörün farklı bir kopyasını alıyoruz ve proje büyüdükçe klasörlerin de sayısı artıyor, ve böylelikle karışıklık ortaya çıkıyor. Dolayısıyla kendimiz için bir çeşit yedek almak isterken proje takibini oldukça zor noktaya getiriyoruz.

Git’i kullanma amacımız tam olarak bu. Projemizin farklı versiyonlarını alabilmek, korkmadan değişiklik yapabilmek, geriye dönebilmek, farklı dallarda farklı özellikler test edebilmek, bütün projeyi aşama aşama takip edebilmek ve ekip olarak çalışabilmek. Bütün bunlar projenin sürdürülebilirliği ve kalıcı olması için çok önemli.

Git Kurulumu

Git’i kullanabilmek için bilgisayarımıza kurmamız gerekli. Resmi sitesinden kendi işletim istemimiz için istediğimiz versiyonunu indirebiliriz.

Kurulumu tamamladıktan sonra yüklenen versiyonun kontrolünü sağlamak için terminalde şu komutu çalıştırabiliriz.

git version

# Check git version 
git --version

git config

İleride yapılacak olan commit’lerde(değişikliklerin kaydedilmesi) kullanıcının kimliğinin belirlenmesi için git config komutunu kullanırız.

# Setup the git configuration
git config --global user.name “your-username”
git config --global user.email “your-email”

Git ve GitHub kullanımı yazı serimin ilkinde şimdiye kadar açıkladığım gibi, Git ve versiyon kontrolü sağlıklı uygulama geliştirme açısından bütün yazılımcılar için çok önemli bir noktada.

Git Serisine devam edip öğrendiklerimi ve tecrübelerimi paylaşıyor olacağım. Gelecek yazılarda buluşmak dileğiyle :)

--

--

No responses yet