Last chance! 50% off DataCamp Premium
Sale ends in

Kodlama, programlama veya yazılım geliştirme hakkında bir şeyler okuduysanız, Git’i duymuşsunuzdur.
Bu kullanışlı (ve ücretsiz) araç, dünyanın en popüler sürüm kontrol sistemidir. Öyle popülerdir ki, yalnızca yazılım geliştiricilerin %90’ından fazlası değil, diğer alanlardaki profesyoneller de kullanır.
Pek çok açıdan, Git neredeyse sürüm kontrolü ile eş anlamlıdır. Peki sürüm kontrolü nedir ve neden bu kadar önemlidir?
Git evrenine derin bir yolculuğa çıkın. Burada Git’le ilgili her şeye, ne olduğuna, kimlerin kullandığına ve tarihine yakından bakıyoruz.
Git, dağıtık bir sürüm kontrol sistemidir (dVCS). Adından da anlaşılacağı gibi sürüm kontrolü, belirli bir projenin farklı sürümlerini kontrol edip izlemekle ilgilidir.
Bir VCS, herhangi bir dosyada (veya bir dosya grubunda) yapılan değişiklikleri izler ve kaydeder; böylece gerektiğinde daha sonra belirli yinelemeleri geri çağırmanıza olanak tanır. VCS’ler bazen kaynak kodu yönetimi (SCM) veya revizyon kontrol sistemleri (RCS) olarak da adlandırılır.
Sürüm kontrolü, çok sayıda ekip üyesinin aynı projede, aynı odada ya da hatta aynı ülkede olmasalar bile, birlikte çalışmasına olanak tanır.
Örneğin, diyelim ki bir şarkı yazarısınız. Evde kaleme aldığınız yeni bir şarkı üzerinde harıl harıl çalışıyorsunuz ama tam içinize sinmedi. Bu yüzden, üzerinde çalışılması gereken kısımları ele almak için iki başka şarkı yazarıyla işbirliği yapmaya karar verdiniz.
Siz ve diğer iki söz yazarı, her biriniz bağımsız çalışarak, sözlerde ve müzikte küçük dokunuşlar yapmaya başlıyorsunuz. Diğer müzisyenler size kendi şarkı versiyonlarını gönderdiğinde, yaptıkları bazı değişiklikleri beğeniyor ama hepsini değil.
Şimdi, şarkının her bir sürümündeki her değişikliği görebildiğinizi, bunları nasıl tınladıklarını test edebildiğinizi ve beğendiklerinizi sürümler arasında eşzamanlayabildiğinizi hayal edin.
Git’in kullanıcılarına sağladığı şey tam olarak budur. Kişiler bir projede yerel olarak (kendi bilgisayarlarında) çalışabilir, işe yarayan değişiklikleri kaydedebilir ve sonra bu değişiklikleri bir Git deposuna eşzamanlayarak diğerlerinin daha yeni sürümü görmesini sağlayabilir.
Git genellikle bir yazılım geliştirme aracı olarak düşünülür, öyledir de; ancak satır satır kod, yeni bir web sitesi tasarım yerleşimi ya da bir şarkı fark etmeksizin, her tür dosya üzerinde sürüm kontrolü (versiyonlama) için kullanılabilir.
İşbirlikçi çalışma için kullanışlı bir araç olmasının yanı sıra, sürüm kontrolünün birkaç başka faydası daha vardır:
Hayır, Git tek VCS değildir; ancak en popüler olanıdır ve fiili standart araç kabul edilir. Diğer popüler sürüm kontrol sistemleri arasında Fossil, Mercurial ve Subversion bulunur.
Sistemler arasında, dallanma ve birleştirme gibi temel işlevleri nasıl ele aldıklarına dair küçük farklılıklar vardır; ancak genel mantık aynıdır. Sistemler arasındaki asıl fark ise merkezî mi yoksa dağıtık mı olduklarıdır.
Gerek merkezî gerekse Git gibi dağıtık sistemler aynı işlevi yerine getirir.
İkisi arasındaki temel fark, merkezî sistemlerde ekip üyelerinin çalışmalarının en son sürümlerini ittiği merkezî bir sunucunun bulunmasıdır. Bunu, herkesin paylaştığı tek bir merkezî proje varmış gibi düşünebilirsiniz.
Dağıtık VCS’lerde ise ekip üyelerinin kendi cihazlarında tüm projenin geçmişinin yerel bir kopyası (klon) bulunur; bu nedenle değişiklik yapmak veya kodları üzerinde çalışmak için çevrimiçi olmaları gerekmez. Merkezî bir sunucu yerine bu klonu çevrimiçi bir depodan elde ederler.
Geliştiriciler Git ile çalışırken, her ekip üyesinin proje klonu, projenin başlangıcından bu yana yapılan tüm değişiklikleri barındırabilen bir depodur.
Git, aynı zamanda Linux işletim sistemi çekirdeğini de geliştiren Fin yazılım mühendisi Linus Torvalds tarafından 2005 yılında geliştirildi.
Git, acil bir ihtiyacı karşılamak için oluşturuldu. Geliştirilmeden önce, dünyadaki Linux geliştiricileri, kendisi de bir dVCS olan tescilli BitKeeper yazılımını kullanıyordu.
Bu yazılım bir şirkete ait olduğu için, çoğu açık kaynak değerlerini savunan Linux geliştiricileri arasında bazı anlaşmazlıklara neden oldu.
Yazılımı ücretsiz kullanmanın karşılığında, BitKeeper’ın arkasındaki şirket BitMover, Linux topluluğuna bazı kısıtlamalar getirdi. Linux Journal’a göre bu kısıtlamalardan biri, rakip sürüm kontrol projeleri üzerinde çalışamamalarıydı.
Belki de kaçınılmaz bir hamleyle, bir Linux geliştiricisi, açık kaynak bir ürün oluşturma çabasıyla BitKeeper’ı tersine mühendislik yapmaya başladı. Verdiği sözde durarak BitMover, Linux çekirdeğine yönelik hizmetleri durdurdu ve dağıtık geliştirme sistemi belirsizliğe sürüklendi.
Bu açmazı çözmek için Torvalds, 1991’den beri ilk kez Linux üzerindeki çalışmayı durdurdu ve Git’i yarattı; geliştirmeye başladıktan sadece birkaç ay sonra kararlı bir sürümü yayımladı.
İlginçtir ki, Linux çekirdeği ilk etapta BitKeeper’ı benimsemeden önce, geliştiriciler yamalarını (değişikliklerini) Torvalds’a bağımsız olarak gönderiyor ve o da bunları gerektiğinde entegre ediyordu. Ve Git’in yayımlanmasından 11 yıl sonra, 2016’da BitKeeper açık kaynak oldu.
Linus Torvalds’ın 2005’te Git’teki ilk kod gönderiminde, programın neden Git olarak adlandırıldığına dair bazı ipuçları veren bir bilgi dosyası eklenmişti. İşte o dosyadan bir bölüm:

Daha steril bir Global Information Tracker adını tercih etmediğiniz sürece, Git’in adı yeteneklerine (ya da sözde eksikliklerine) yapılmış nükteli bir göndermedir.
Sürüm kontrol sistemleri, Git’ten ve hatta BitKeeper’dan bile daha eski. Kısa bir zaman çizelgesine bakalım:
Git ve GitHub birbirini tamamlayan teknolojilerdir. Git bir sürüm kontrol sistemiyken GitHub, ekiplerin depolarını yönetmesine yardımcı olan bulut tabanlı bir barındırma hizmetidir.
GitHub, 2008’de Git ile işbirlikçi kodlamayı kolaylaştırmak için tasarlandı; yazılım olarak hizmet (SaaS) platformu bu alanda başarılı oldu ve sonunda dünya çapında milyonlarca kullanıcıyı kendine çekti.
Git’in sunduğu standart sürüm kontrol özelliklerine ek olarak GitHub, hata takibi, görev yönetimi araçları ve sürekli entegrasyon (CI) gibi kendi özelliklerine sahiptir. GitHub freemium bir modelle çalışır; kullanıcılar birçok özelliğe ücretsiz erişebilir ancak tüm özelliklerin kilidini açmak için premium abonelik ödemeleri gerekir. GitHub, 2018’den beri Microsoft’a aittir.
GitHub tek depo barındırma hizmeti değildir; ancak milyonlarca kullanıcı ve platforma dayanan yüz milyonlarca projeyle, tartışmasız dünyanın en popüleridir. DataCamp dahil pek çok büyük şirketi GitHub’da bulabilirsiniz.
Rakip hizmetler arasında, Git için tasarlanmış tamamen ücretsiz ve açık kaynaklı bir hizmet olan GitLab ve hem Git hem Mercurial kod yönetimini destekleyen Bitbucket yer alır.
Git ve sürüm kontrolünün yalnızca kodlama ve yazılım geliştirme için olmadığını daha önce söylemiştik; bu GitHub için de geçerlidir ancak GitHub kod dışı projeler için optimize edilmemiştir.
Git, sürüm kontrolünün önemli olduğu her türlü işbirlikçi projede kullanılabilir; örneğin kapsamlı bir kullanıcı kılavuzu yazımı ya da hatta kilise müziği oluşturma (sonuncusu, GitHub’da görebileceğiniz gerçek bir projedir)
Her ne kadar öncelikle yazılım geliştirmenin kod tarafıyla ilişkilendirilse de, ilişkili alanlardaki kişiler Git’i düzenli olarak kullanır. Veri bilimcileri ve analistler buna iyi bir örnektir; bu profesyoneller, çalışmalarını destekleyen kodu yönetmenin bir yoluna ihtiyaç duyar ve Git tam da bunu sağlar.
Burada DataCamp’te, verilerle çalışmak için gereken araç ve teknolojileri, Git dahil, öğretiyoruz. Sürükleyici ve ilgi çekici Git kurslarımızın tamamını burada bulabilirsiniz.
Git birçok nedenle popülerdir; başta da ücretsiz ve açık kaynak olmasından dolayı.
Git’in gücünü ve verimliliğini gerçekten anlamak için bazı teknik ayrıntılarına değinmemiz gerekir. İşte Git’in nasıl çalıştığının bir dökümü:
git init), orası bir depo haline gelir.git add komutunu kullanırsınızmaster olarak adlandırılır. Bir özellik geliştirmek veya bir hatayı düzeltmek istediğinizde, ana geliştirme hattını etkilemeden değişikliklerinizi kapsüllemek için yeni bir dal (git branch <branch-name>) oluşturabilirsiniz.git merge komutunu kullanarak bu değişiklikleri master dalına (veya başka bir dala) geri birleştirebilirsiniz.git remote komutunu kullanarak uzak depolara da bağlanabilirsiniz. Bu, özellikle işbirliği için yararlıdır. Konuştuğumuz gibi, en yaygın uzak depo GitHub’dır.push edebilir, böylece başkalarının kodunuzu görmesini ve üzerinde işbirliği yapmasını sağlayabilirsiniz. Benzer şekilde, yerel sürümünüzü en son güncellemelerle eşitlemek için uzak bir depodan pull yapabilirsiniz.pull işlemine benzer şekilde, git fetch komutu uzak bir depodan güncellemeleri almanızı sağlar; ancak bu değişiklikleri mevcut dalınıza otomatik olarak birleştirmez. Bu da değişiklikleri entegre etmeden önce gözden geçirme esnekliği sağlar.git clone komutunu kullanırsınız. Bu, makinenizde deponun tüm dosyalarını ve geçmişini içeren yeni bir dizin oluşturur.git log komutunu sağlar. Bu, commit listesini, benzersiz kimliklerini ve onlarla ilişkili mesajları gösterir.Bu teknik ayrıntıları anlamak, Git ile çalışmak için bir temel sağlar. Bu kavram ve komutlara daha aşina hale geldikçe, Git’in sürüm kontrolüne getirdiği esneklik, güç ve verimliliği daha çok takdir edeceksiniz.
Git, dünyanın en popüler dağıtık VCS’idir ve yazılım geliştiricilerin ve ilişkili alanlardakilerin projelerini yönetme şeklini kökten değiştirmiştir.
Google’dan Netflix’e ve aradaki sayısız şirkete kadar pek çok kuruluş, Git’i teknoloji yığınlarının standart bir parçası olarak kullanır. Git’in yaygınlığı o kadar belirgindir ki, herhangi bir yazılım veya kodla ilgili projede, sürecin bir parçası olarak Git’in kullanıldığını varsayabilirsiniz.
Ayrıca veri analistleri ve bilim insanları gibi verilerle çalışan kişiler için de vazgeçilmez bir beceridir. Sonuçta, içgörü elde etmek için verileri işlerken ve çalışmalarımızı destekleyen yazılım araçları geliştirirken bize yardımcı olan kodu versiyonlamanın bir yoluna ihtiyacımız var.
Git, fiili VCS standardıdır ve BT’de veya ona yakın herhangi bir alanda çalışmak istiyorsanız, sahip olunması gereken bir beceridir. Git sadeliğiyle pek bilinmese de, temelleri öğrenmek ve Git evreninde ilerledikçe bilginizi geliştirmek gayet mümkündür.
DataCamp yardımcı olabilir. Introduction to Git kursumuz, Git’in temel bilgilerini eğlenceli ve ilgi çekici bir şekilde öğretmek üzere tasarlanmıştır. Hızınızı aldıktan sonra, becerilerinizi sergilemek için GitHub sertifikası almayı düşünebilirsiniz.
Dünya çapında dokuz milyondan fazla öğrencinin neden DataCamp’i sevdiğini öğrenmek için bugün ilk Git kursunuza kaydolun!
Git, yazılım geliştirme sırasında kaynak kodunda yapılan değişiklikleri izlemek için tasarlanmış dağıtık bir sürüm kontrol sistemidir. Birden fazla geliştiricinin aynı projede eşzamanlı çalışmasına olanak tanır ve yaptıkları değişikliklerin birbirleriyle çakışmamasını sağlar.
Git, dağıtık bir sürüm kontrol sistemidir; yani her geliştiricinin yerel makinesinde proje geçmişinin eksiksiz bir kopyası bulunur. Bu, geliştiricilerin tek bir merkezî depodan çıkış yaptığı merkezî sistemlerden farklıdır.
Git esas olarak yazılım geliştirme ile ilişkilendirilse de, sürüm kontrol yetenekleri dokümantasyon, tasarım, yazım ve daha fazlası dahil olmak üzere çeşitli projeler için faydalı olabilir.
Git bir sürüm kontrol sistemiyken, GitHub Git depolarını barındıran bulut tabanlı bir platformdur. GitHub; hata takibi, görev yönetimi ve işbirliği araçları gibi ek özellikler sağlar.
Hayır, Git'in avantajlarından biri, yerel deponuzda çevrimdışı çalışabilmenizdir. Değişikliklerinizi uzak bir depoya itmek veya oradan güncellemeleri almak istediğinizde internet bağlantısına ihtiyaç duyarsınız.
Git, kodun bütünlüğünü ve özgünlüğünü sağlamak için birkaç yerleşik mekanizmaya sahiptir. Commit imzalama gibi özellikler, commit'lerin kaynağını ve bütünlüğünü doğrulamak için kriptografik yöntemler kullanır.
Introduction to Git kursumuz, Git'i sürüm kontrol için nasıl kullanacağınızı tam olarak anlamanız için mükemmel bir başlangıçtır.
blog
Dario Radečić
15 dk.

blog
Abid Ali Awan
14 dk.
Eğitim
Kurtis Pykes
8 dk.
Eğitim
Adel Nehme