Ana içeriğe atla

Depo (Repository) Nedir ve Yazılım Geliştirmede Neden Önemlidir?

Depo (repository) nedir ve yazılım geliştirmede nasıl çalışır, öğrenin. Temel özelliklerini, türlerini, faydalarını ve örneklerini keşfedin; GitHub ve Bitbucket gibi araçları kullanmaya dair pratik içgörüler edinin.
Güncel 3 Eki 2026  · 11 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Depolar, projelerinizin saklandığı dijital alanlardır. Dosyaları saklar, değişiklikleri izler ve başkalarıyla iş birliği yapmayı kolaylaştırır. Neyin değiştiğini, değişikliği kimin ve neden yaptığını görebilirsiniz.

Bu yazıda depoların ne olduğunu, karşılaşacağınız başlıca türleri ve neden önemli olduklarını ele alacağız.

Bir Depo Fikrinin Arkasındaki Düşünce

Depo (ya da repo), bir projenin tüm dosyalarının, kodlarının, belgelerinin ve kaynaklarının saklandığı merkezi bir yerdir. Ekibiniz için her şeyi düzenli ve erişilebilir tutan bir merkez gibidir.

Depoyu faydalı kılan şey, sürüm kontrolünü desteklemesidir. Bu, her değişikliğin kaydedildiği anlamına gelir: kimin yaptığı, ne zaman yapıldığı ve neden yapıldığı. Bir şey bozulursa ya da gözden geçirilmesi gerekirse, her zaman önceki bir sürüme geri dönebilirsiniz.

Örneğin, bir depoyu buluttaki bir proje klasörü gibi düşünebilirsiniz. Bilgisayarınızdaki bir klasör gibi tüm dosyalarınızı tek bir yerde tutar. Ancak sıradan bir klasörden farklı olarak, bir depo her düzenlemeyi izler, değişikliği kimin yaptığını not eder ve tüm geçmişi kaydeder.

repository cycle

Bu sayede siz ve ekibiniz dosyaları özgürce ekleyebilir, güncelleyebilir veya yeniden düzenleyebilir; emek kaybı endişesi yaşamazsınız. 

Temel Depo Özellikleri ve İşlevleri

Bir deponun temel özelliklerine ve nasıl çalıştıklarına bakalım:

Depolama

Bir depo tüm proje dosyalarınızı tek bir yerde tutar. Kodu bir dizüstü bilgisayarda, görselleri bir sohbet dizisinde, notları bir e-postada bulundurmak yerine, her şey tek bir noktada bir aradadır. Böylece önemli olanı asla gözden kaçırmazsınız ve tüm ekibiniz ilgili verileri nerede bulacağını bilir.

Örneğin bir web sitesi geliştiriyorsanız, HTML, CSS, görseller ve notlarınızın tümü aynı repoda saklanır. Böylece karışıklık olmaz, hiçbir dosya kaybolmaz.

Sürüm kontrolü

Bir depoda değişiklikleri her kaydettiğinizde, depo bunları hatırlar. Kimin düzenleme yaptığını, ne zaman yaptığını ve neyin değiştiğini görebilirsiniz. Olağan dışı bir şey olursa stres yapmanıza gerek yoktur. Her zaman önceki bir sürüme dönebilirsiniz. Bu da hiçbir şeyin kalıcı olarak kaybolmayacağına dair içinize su serper.

Diyelim ki ekip arkadaşınız yanlışlıkla ana sayfa kodunun bir kısmını sildi. (Evet, olabiliyor!) Her şeyi baştan yazmak yerine, dünkü sürüme geri dönersiniz ve sorun saniyeler içinde çözülür.

İş birliği

Bir depoda çalıştığınızda siz ve ekip arkadaşlarınız aynı anda katkı sağlayabilirsiniz. Birinin işini bitirmesini beklemenize gerek kalmaz ve birbirinizin çalışmalarının üzerine yazma konusunda endişe etmezsiniz. Herkes kendi işine odaklanır ve depo her şeyi senkronize tutar.

Diyelim ki bir projede ekip arkadaşınızla çalışıyorsunuz. Siz bir hatayı düzeltirken, diğer kişi aynı anda ana sayfayı tasarlıyor olabilir. Böylece paralel çalışır, yine de her şey genel projeye sorunsuz şekilde akar.

Organizasyon

Bir depo ile dosyalarınız dağınık ya da bulunması zor olmaz. Açık bir klasör yapısı kurabilir, böylece her şeyin nereye ait olduğunu her zaman bilirsiniz. Bu, işinizi derli toplu tutar ve ihtiyacınız olan tek bir dosyayı ararken vakit kaybetmenizi önler.

Diyelim ki “styles.css” dosyanızı arıyorsunuz. Düzensiz, rastgele klasörlerde dolaşmak yerine, repodaki “assets” klasörünü açarsınız ve dosya tam oradadır.

Erişim kontrolü

Bazen projenizi özel tutmak, bazen de paylaşmak istersiniz. Bir depo, çalışmanızı kimin görüntüleyebileceğini veya düzenleyebileceğini kontrol etmenizi sağlar. Özel, herkese açık ya da özel izinlerle ikisinin arasında bir yerde olmasına siz karar verirsiniz.

Örneğin, geliştirme aşamasındayken reponuzu özel tutup, lansmandan sonra herkese açık yaparak diğerlerinin bitmiş projenizi keşfetmesini sağlayabilirsiniz.

Entegrasyon

Depolar ayrıca kullandığınız diğer araçlarla da bağlanabilir. Bu, kodunuzu otomatik test eden, güncellemeleri dağıtan veya proje yönetimi görevlerinizi siz müdahale etmeden güncelleyen iş akışları kurabileceğiniz anlamına gelir.

Diyelim ki repoya yeni kod gönderdiniz. Hemen otomatik testler çalışır ve hatalar işaretlenir. Aynı anda, proje panonuzda görev tamamlandı olarak işaretlenir. Böylece her şey birlikte çalışır. 

Yaygın Depo Türleri

Birden fazla depo türü vardır. Projenize bağlı olarak, her birinin kendi amacı ve faydası olan farklı türlerle karşılaşırsınız. Şimdi en yaygın olanlarına bakalım.

Sürüm kontrol sistemi depoları

Bir sürüm kontrol deposu, proje dosyalarınızda yapılan her değişikliği takip eder. Böylece sürümleri karşılaştırabilir, gerekirse geri dönebilir ve ekip arkadaşlarınızla birbirinizin çalışmalarının üzerine yazmadan güvenle çalışabilirsiniz.

Farklı sürüm kontrol sistemleri vardır ve en sık görecekleriniz şunlardır:

  • Git her geliştiricinin deponun tam bir kopyasını kendi bilgisayarında tutmasına olanak tanır (dağıtık bir sistem). Bu, iş birliğini hızlandırır ve daha güvenli hale getirir çünkü tek bir sunucu arızası projenin tamamını silemez.
  • Mercurial da dağıtık bir sürüm kontrol sistemidir. Günümüzde daha az yaygın olsa da, bazı ekipler sadeliği nedeniyle hâlâ kullanır.
  • Subversion (SVN) daha eski, merkezî bir sürüm kontrol sistemidir. Her kişinin tam bir kopyaya sahip olması yerine, depoyu barındıran tek bir ana sunucu vardır. Geliştiriciler dosyalara erişmek veya güncellemek için o sunucuya bağlanır.

Paket yöneticisi depoları

Bir paket yöneticisi deposu, kod kütüphanelerini (paketler olarak adlandırılır) saklar. Her şeyi sıfırdan yazmak yerine, geliştirmeyi hızlandırmak için hazır kodları içe aktarabilirsiniz. Kendi projenizi paketleyip başkalarıyla da paylaşabilirsiniz.

Bu, giriş sistemleri, grafikler veya butonlar gibi yaygın özelliklere her ihtiyaç duyduğunuzda tekerleği yeniden icat etmek zorunda kalmadığınız için zaman kazandırır ve tutarlılık sağlar.

İşte bazı popüler paket yöneticisi depoları:

  • npm, JavaScript için başlıca paket yöneticisidir. React, Angular ve Bootstrap gibi binlerce kütüphaneye ev sahipliği yapar.
  • PyPI (Python Package Index), Python paketleri için merkezi bir merkezdir. Bu kütüphaneleri pip ile kurabilirsiniz.
  • apt çoğunlukla Linux sistemlerinde, işletim sistemi düzeyinde yazılım kurmak ve güncellemek için kullanılır.

Veri depoları 

Veri deposu, veri kümelerinin saklandığı, yönetildiği ve paylaşıldığı merkezi bir yerdir. Büyük dosyaları farklı bilgisayarlara dağınık halde tutmak yerine, bir veri deposu bunları güvenilir tek bir konumda toplar.

Başlıca avantajlarından biri, veri depolarının genellikle meta veri (yazar, tarih, sürüm ve lisans gibi ayrıntılar) içermesidir. Bu da veriyi anlamayı, yeniden kullanmayı ve atıf yapmayı kolaylaştırır. Yani bir araştırmacı ya da veri bilimciyseniz, verinin nereden geldiğini ve kullanıp kullanamayacağınızı bilirsiniz.

Bilinen bir veri deposu örneği Kaggle’dır; burada insanlar veri kümelerini yükler, başkaları indirip analiz eder ve hatta bir şekilde iyileştirebilir.

Kod Olarak Altyapı (IaC) depoları

Bir Kod Olarak Altyapı (IaC) deposu, sunucular, ağlar veya bulut kaynakları gibi altyapınızı tanımlayan yapılandırma dosyalarını sakladığınız yerdir. Bunları elle kurmak yerine, kod olarak yazarsınız.

Çünkü altyapınız kod haline geldiğinde, yazılım gibi sürümlenebilir, gözden geçirilebilir, yeniden kullanılabilir ve otomatikleştirilebilir. Bu da DevOps ekiplerini daha hızlı ve insan hatasına daha az açık hale getirir.

Örneğin, Terraform ile ihtiyaç duyduğunuz altyapıyı belirten basit yapılandırma dosyaları yazarsınız. Terraform ardından bunu otomatik olarak kurar veya günceller. Bu yapılandırma repoda kalır; böylece tüm ekip görebilir, değişiklikleri takip edebilir ve gelecekteki projeler için yeniden kullanabilir.

Depo Kavramları ve Terminolojisi

Depolarla çalışmaya başladığınızda bazı standart terimlerle karşılaşırsınız.

Bunların anlamı şöyledir:

Repository Concepts and Terminology

Herkese Açık ve Özel Depolar

Bir depo kurduğunuzda, kimin erişebileceğine de karar verirsiniz. Bazıları herkese açıktır, bazıları davet edilen iş birlikçileriyle sınırlıdır, bazıları ise bir şirket içinde tutulur. 

Üç ana türe bakalım.

Herkese açık depolar

Herkese açık bir repo, herkes tarafından erişilebilir. İsteyen görüntüleyebilir, indirebilir veya izin verirseniz katkıda bulunabilir. Bu, çalışmaları paylaşmanın ve topluluktan yardım davet etmenin amaçlandığı açık kaynak projeleri için standarttır.

Ücretsiz bir kod kütüphanesi yayımlarsanız, herkese açık yapmak diğer geliştiricilerin kullanmasına, iyileştirme önermesine ve hataları düzeltmesine olanak tanır.

Tüm dünya bir herkese açık repoyu görebildiği için, hassas verileri eklememeye dikkat edin. Güvenlik açıklarını taramak için Dependabot gibi araçlar kullanabilirsiniz.

Özel depolar

Özel bir repo yalnızca sizin seçtiğiniz kişilere açıktır. Paylaşmaya hazır olmayan ya da hassas veya mülkiyete tabi kod içeren projelerde yaygındır.

Ekip olarak bir müşterinin web sitesini geliştiriyorsanız, lansmana kadar özel bir repoda tutarsınız ki rakipler ya da halk erişemesin.

Ancak özel repolarda bile rehavete kapılmayın. Güçlü izinler, çok faktörlü kimlik doğrulama kullanın ve sorunları önlemek için erişimi düzenli olarak gözden geçirin.

Dahili depolar

Dahili bir repo yalnızca kuruluşunuz içindeki kişilere açıktır. Şirketteki herkes görebilir, ancak dışarıdakiler göremez. Şirket genelinde paylaşılması gereken, ancak dışarı çıkmaması gereken projeler için idealdir.

Örneğin, bir şirket İK araçlarını dahili bir repoda barındırabilir; böylece her çalışan kullanabilir, ancak şirket dışından kimse kodu göremez.

Ancak bir dahili repo kullanıyorsanız, izinleri ve çatallama (fork) politikalarını göz önünde bulundurun ki kod duvarlarınızın dışına sızmasın.

Depolar Neden Önemlidir?

Depolar, projeleri yönetmeyi ve paylaşmayı kolaylaştıran araçlar sunar. Ancak bundan çok daha fazlasını yaparlar—işte size sağladıkları:

  • Ekip arkadaşlarınızla aynı anda, birbirinizin değişikliklerinin üzerine yazmadan birlikte çalışın.
  • Her değişikliği takip edin, kimin yaptığını görün ve bir şeyler ters giderse geri dönün.
  • Yeni özellikleri veya hata düzeltmelerini dallarda deneyin; ana projeye dokunmadan hazırlanınca geri birleştirin.
  • Proje nasıl çalışıyor herkes anlasın diye README.md gibi dosyalar veya vikilerle dokümantasyonu tek yerde tutun.
  • Projeleri GitHub gibi platformlarda sergileyerek becerilerinizi öne çıkaran bir portföy olarak kullanın.
  • Projeleri otomatik test ve dağıtım için GitHub Actions, GitLab CI veya Jenkins gibi araçlarla depolara bağlayın.

Popüler Depo Barındırma Hizmetleri

Depolarınızı barındırabileceğiniz çeşitli platformlar vardır ve her birinin güçlü yönleri bulunur. En yaygın olanlardan bazılarına bakalım:

GitHub 

İlk 500 web sitesi arasında 32. sırada yer alan GitHub, halihazırda milyonlarca geliştirici ve projenin bulunduğu, depo barındırmada en popüler platformdur. Kod paylaşımından söz edildiğinde varsayılan tercih haline gelmiştir.

GitHub kendi özellik karmasıyla gelir. 

  • Açık kaynak topluluğuyla paylaşmak için herkese açık repolar veya yalnızca ekibiniz için özel repolar oluşturabilirsiniz. 
  • Proje yönetimini ve iş birliğini kolaylaştıran, sorun izleme, kod incelemeleri, proje panoları ve vikiler gibi yerleşik araçlara sahiptir. 
  • GitHub Pages kullanarak repodan doğrudan statik web siteleri ve bloglar barındırabilirsiniz.

GitHub’ın fiyatlandırma kademesi şöyledir:

Plan

Fiyat

En Uygun

Free

$0

  • Bireysel projeler
  • Açık kaynak projeler

Team

$4/ay

  • Bireyler 
  • İleri düzey iş birliğine ihtiyaç duyan organizasyonlar

Enterprise

$21/ay

  • Güvenlik ve uyumluluk gerektiren büyük işletmeler

Bitbucket

Bitbucket, Atlassian’ın repo barındırma hizmetidir ve Jira veya Trello gibi araçları zaten kullanıyorsanız oldukça iyi çalışır. Hepsi entegre olduğundan, görevlerinizi Jira’da takip edip Bitbucket’taki koda doğrudan bağlayabilirsiniz; bu da ekip çalışmasını çok daha akıcı hale getirir. 

Hatta yerleşik çekme istekleri (pull request), kod incelemeleri ve CI/CD hatlarıyla birlikte gelir; böylece kodunuzu doğrudan platformdan test edip dağıtabilirsiniz.

İşte fiyatlandırma kademeleri şu şekildedir: 

Plan

Fiyat

Ayrıntılar

Free

$0

  • Ayda 50 derleme dakikası ile 5 kullanıcıya kadar

Standard

$3/ay

  • Sınırsız kullanıcı
  • Daha fazla derleme dakikası
  • Daha iyi destek

Premium

$6/ay

  • Sınırsız kullanıcı
  • Ek derleme dakikaları
  • Dinamik CI/CD hatları

GitLab

GitLab, depo barındırmada bir diğer büyük isimdir. Kodlama, test etme ve projeleri dağıtma için hepsi bir arada bir platformdur. GitHub veya Bitbucket’tan farklı olarak, birçok şirketin gizlilik ve kontrol nedeniyle tercih ettiği şekilde, kendi sunucularınıza kendiniz de barındırabilirsiniz.

Yerleşik CI/CD hatlarıyla birlikte gelir; böylece kodunuzu otomatik olarak test edip dağıtabilirsiniz.

Onların fiyatlandırma kademesi şu şekildedir:

Plan

Fiyat

Ayrıntılar

Free

$0

  • Yerleşik CI/CD
  • Bireyler ve küçük ekipler için ideal

Premium

$29/ay

  • Yapay zeka entegrasyonu
  • Gelişmiş proje yönetimi
  • Öncelikli destek ve daha fazlası

Ultimate

$99/ay

  • Sınırsız misafir kullanıcı
  • Uyumluluk
  • Portföy yönetimi ve daha fazlası

SourceForge

SourceForge, açık kaynak projeleri barındırmak için en eski platformlardan biridir. Günümüzde GitHub veya GitLab kadar popüler olmayabilir, ancak ücretsiz yazılım dağıtımı için hâlâ yaygın olarak kullanılır. 

Ağırlıklı olarak özel değil, açık kaynak projelere odaklanır; dolayısıyla herkesin kullanabileceği kamuya açık yazılımlar üzerinde çalışıyorsanız, SourceForge hâlâ sağlam bir seçenektir.

Açık kaynak projeler için ücretsizdir. 

AWS CodeCommit 

AWS CodeCommit, Amazon’un Git tabanlı depo hizmetidir. Tamamen yönetilen bir hizmettir; dolayısıyla sunucu kurup bakım yapmak zorunda kalmazsınız, altyapı ve ölçekleme ile AWS ilgilenir.

Depolar varsayılan olarak özeldir ve kimlik bilgilerini ifşa etmeden AWS hesapları arasında paylaşılabilir. 

Şu şekilde bir fiyatlandırma kademesine sahiptir: 

Plan

Fiyat

Ayrıntılar

Free

$0

  • 5 aktif kullanıcı
  • Ayda 50 GB depolama
  • Ayda 10.000 Git isteği

Paid

Ücretsiz katman ötesinde $1/kullanıcı/ay

  • Ücretsiz katmanın üzerindeki ek aktif kullanıcılar

Son Düşünceler 

Depolar her şeyi bir araya getirir. Kodu güvende tutar, değişiklikleri izler ve iş birliğini çok daha kolay hale getirir. Modern yazılım geliştirme onlarsız neredeyse imkânsız olurdu.

Öyleyse, yeni başlıyorsanız, Introduction to Git kursumuza göz atın. Temelleri—commit, push ve branch’leri—öğrenin ve depoların neden her projenin vazgeçilmez bir parçası olduğunu hızla göreceksiniz.


Laiba Siddiqui's photo
Author
Laiba Siddiqui
LinkedIn
Twitter

Karmaşık konuları basitleştirmeyi seven bir içerik stratejistiyim. Splunk, Hackernoon ve Tiiny Host gibi şirketlerin hedef kitleleri için ilgi çekici ve bilgilendirici içerikler üretmelerine yardımcı oldum.

SSS

Yerel depo ile uzak depo arasındaki fark nedir?

Yerel bir depo bilgisayarınızda bulunur ve kişisel çalışmalarınız için proje dosyalarınızı saklar. Uzak bir depo ise bir sunucuda (GitHub veya GitLab gibi) barındırılır ve iş birliği, paylaşım ve yedeklemeye olanak tanır.

Depo ile veritabanı arasındaki fark nedir?

Bir depo, sürüm geçmişiyle birlikte kodu ve ilgili proje dosyalarını saklar. Geliştirmeyi yönetir.

Veritabanı ise yapılandırılmış verileri (müşteri kayıtları gibi) saklar ve canlı veriyi yönetir.

Her proje için bir depoya ihtiyacım var mı?

 Her zaman değil. Sadece tek seferlik hızlı bir dosya ise, bir repo gereğinden fazla olabilir. Ancak güncellemeyi, paylaşmayı veya iş birliği yapmayı planladığınız her şey için bir depo hayatı çok kolaylaştırır.

Git ile GitHub arasındaki fark nedir?

Git bir sürüm kontrol sistemidir. Değişiklikleri izler ve dalları yönetir. GitHub ise Git depolarını çevrimiçi barındıran ve çekme istekleri, sorunlar ve entegrasyonlar gibi iş birliği özellikleri ekleyen bir platformdur.

Başkasının reposuna nasıl katkıda bulunurum?

Çoğu herkese açık proje, çekme istekleri (pull request) üzerinden katkıyı kabul eder. Genellikle repoyu çatallarsınız (fork), değişikliklerinizi yaparsınız ve ardından proje sahibinin incelemesi için bir çekme isteği gönderirsiniz.

Bir repoyu herkese açıktan özele çevirebilir miyim?

Evet. Çoğu platform (GitHub, GitLab, Bitbucket gibi) bir deponun görünürlüğünü istediğiniz zaman değiştirmeye izin verir. Ancak bir şey bir kez herkese açık olduysa, kopyalarının başka yerlerde çoktan bulunabileceğini unutmayın.

Konular
Veri Mühendisliği

DataCamp ile öğrenin

Kurs

Veri Mühendisliğini Anlamak

2 sa
375K
Veri mühendislerinin veri bilimini mümkün kılan temelleri nasıl attığını keşfedin. Kodlama gerektirmez!
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör