GitHub, Git tabanlı bir bulut kod barındırma ve iş birliği platformudur; yazdığın kodları çevrimiçi olarak saklamana, sürüm geçmişini yönetmene ve başka geliştiricilerle birlikte çalışmana olanak tanır. Yani github nedir sorusunun en kısa cevabı şudur: projelerini güvenle depolayıp dünyaya açtığın, geliştirici kimliğini şekillendiren dijital bir vitrindir. Bu makalede hem GitHub'ı hem de onun temelinde yatan Git teknolojisini adım adım öğreneceksin. Konuyu sıfırdan, uygulamalı öğrenmek istiyorsan canlı yazılım eğitimlerimiz tam da bu tür temelleri sağlam bir zemine oturtur.
Bu rehber boyunca önce Git'in mantığını, ardından Git ile GitHub arasındaki farkı, GitHub'ın nasıl çalıştığını, ilk iş akışını, kariyer açısından önemini, alternatiflerini ve yeni başlayanların sık düştüğü hataları ele alacağız. Her başlık, hem öğrencinin hem profesyonel geliştiricinin işine yarayacak biçimde tasarlandı; dilersen ilerledikçe hangi teknolojinin sana uygun olduğunu görmek için ücretsiz kariyer testimizi de deneyebilirsin.
GitHub Nedir? Kısa ve Net Cevap
GitHub, Git sürüm kontrol sistemi üzerine kurulu, bulut tabanlı bir kod barındırma ve iş birliği platformudur. En yalın haliyle, kod dosyalarını internette depolayan, sürümlerini takip eden ve ekiplerin aynı proje üzerinde çakışmadan çalışmasını sağlayan bir servistir. Tek başına çalışan bir öğrenciden dünya çapında dağılmış yüzlerce kişilik açık kaynak topluluklarına kadar herkes GitHub'ı aynı temel amaçla kullanır: kodu güvenle saklamak ve birlikte üretmek. Bu mantığı gerçek projelerle pekiştirmek istersen video eğitimlerimiz kendi hızında ilerlemene imkân verir.
GitHub'ın kimin işine yaradığını merak ediyorsan cevap oldukça geniş bir kitleyi kapsar. Bir öğrenci için GitHub, öğrendiklerini biriktirdiği canlı bir portföydür; bir bireysel geliştirici için projelerini yedeklediği ve sergilediği bir alandır; bir ekip için ise iş bölümünü organize eden bir merkez üssüdür. Özellikle açık kaynak dünyasında GitHub, milyonlarca projenin buluştuğu ortak zemindir. Bu yüzden GitHub'ı öğrenmek yalnızca teknik bir beceri değil, aynı zamanda geliştirici topluluğuna dahil olmanın da anahtarıdır; nasıl başlayacağını netleştirmek için sık sorulan sorular sayfamıza göz atabilirsin.
Aşağıda ilerleyen bölümlerde önce Git'in ne olduğunu anlayacak, ardından "aslında bu ikisi neden karıştırılıyor?" sorusuna net bir cevap bulacaksın. Bu iki kavramı doğru ayırt etmek, sürüm kontrolüyle ilgili kafandaki tüm karmaşayı çözer. Konuyu birebir bir eğitmenle çalışmak istersen 1-1 özel ders seçeneğimiz tam sana göre ilerleyen bir program sunar.
Git Nedir? Versiyon Kontrol Sisteminin Mantığı
Git, kodun geçmişini kaydeden ve yöneten bir dağıtık versiyon kontrol sistemidir. "Versiyon kontrolü" ifadesi kulağa teknik gelse de aslında çok sezgisel bir fikirdir: yaptığın her önemli değişikliği kayıt altına alır ve gerektiğinde eski bir hâline geri dönmeni sağlar. Bir belge üzerinde "kaydet" tuşuna bastığında yalnızca en son hâlin kalır; Git ise her kaydın bir fotoğrafını çeker, böylece projenin tüm yaşam öyküsü elinin altında olur. Bu düşünme disiplinini erken kazanmak, yazılıma sağlam başlamanın temelidir; Berk Akademi olarak öğrencilerimize koddan önce bu tür mantıkları oturtmayı önceliklendiririz.
Git'i anlamanın en kolay yolu onu her adımı kaydeden akıllı bir deftere benzetmektir. Bu defterde attığın her adım bir "commit" olarak yer alır ve her commit'in bir mesajı, tarihi ve kimin yaptığı bilgisi bulunur. Böylece haftalar sonra bile "bu değişikliği neden yapmıştım?" sorusunun cevabını görebilir, hata yaptığın anki hâline saniyeler içinde dönebilirsin. Git'in temel yapı taşlarını şöyle özetleyebiliriz:
- Commit: Projenin belirli bir andaki tam kaydı; adım adım biriken kilometre taşları.
- Kayıt geçmişi (history): Tüm commit'lerin kronolojik zinciri; projenin hafızası.
- Geri dönebilme (revert/checkout): Herhangi bir eski sürüme güvenle geçebilme yeteneği.
- Dağıtık yapı: Projenin tam kopyası her geliştiricinin bilgisayarında bulunur.
Git, 2005 yılında Linus Torvalds tarafından geliştirilmiştir; aynı kişi Linux çekirdeğinin de yaratıcısıdır. Git'in en kritik özelliği ise yerelde (kendi bilgisayarında) çalışmasıdır; yani sürüm kontrolü yapmak için internete ihtiyacın yoktur, tüm geçmiş senin makinende durur. İşte bu noktada GitHub devreye girer ve bu yerel geçmişi buluta taşır. Bu ayrımı doğru kavramak istiyorsan, kavramı bir eğitmenle uygulamalı görmenin faydasını Berk Keskin'in eğitim yaklaşımında yakından hissedebilirsin.
Git ve GitHub Farkı Nedir? Karışıklığın Kaynağı
En sık karışan konu tam da burasıdır: Git ile GitHub aynı şey değildir. Git bir araçtır (yazılımdır) ve yereldedir; GitHub ise bir platformdur (servistir) ve buluttadır. Git, bilgisayarına kurduğun ve sürüm kontrolünü fiilen yapan yazılımdır. GitHub ise Git ile oluşturduğun proje geçmişini internete yükleyip başkalarıyla paylaşmanı sağlayan bir hizmettir. Bu iki kavramı ayırt etmek, sürüm kontrolüyle ilgili kafandaki düğümlerin çoğunu çözer; konuyu sıfırdan sistemli öğrenmek istersen canlı sınıflı kurslarımız bu ayrımı ilk günden netleştirir.
Bu farkı anlatmak için sevdiğimiz bir araba–otopark analojisi vardır. Git, senin arabandır: onu sürersin, geçmiş yolculuklarını hatırlar, tek başına da işlevini yerine getirir. GitHub ise bir otopark gibidir: arabanı orada güvenle bırakır, başkalarının da görmesine ve gerekirse paylaşmasına imkân tanır. Arabanı otoparka koymadan da kullanabilirsin (yani Git'i GitHub olmadan çalıştırabilirsin), ama otoparkın anlamı ancak bir araban olduğunda ortaya çıkar (GitHub, Git olmadan pek bir işe yaramaz). Bu ilişkiyi projelerle deneyimlemek istersen asenkron video eğitimlerimiz adım adım ilerlemeni sağlar.
Aşağıdaki tablo, iki kavramı yan yana koyarak farkı kalıcı biçimde netleştirir. Bu ayrımı bir kez oturttuğunda, sonraki bölümlerde göreceğin iş akışı çok daha anlaşılır gelecektir; takıldığın noktalarda bir eğitmenden destek almak istersen özel ders randevusu oluşturabilirsin.
| Özellik | Git | GitHub |
|---|---|---|
| Ne olduğu | Versiyon kontrol yazılımı (araç) | Kod barındırma ve iş birliği platformu (servis) |
| Nerede çalışır | Yerelde, kendi bilgisayarında | Bulutta, internet üzerinde |
| Sahiplik | Açık kaynak, ücretsiz yazılım | Bir şirket tarafından işletilen platform |
| İnternet gereksinimi | Gerekmez, çevrimdışı çalışır | Gerekir, çevrimiçi bir servistir |
| Temel amaç | Değişiklikleri kaydetmek ve yönetmek | Kodu paylaşmak ve birlikte çalışmak |
Bu tablodan çıkan özet nettir: Git yazılımın kalbinde çalışan motor, GitHub ise bu motoru dünyaya bağlayan köprüdür. İkisini birlikte kullanmak, modern yazılım geliştirmenin standart bir parçasıdır ve her ciddi geliştirici bu ikiliyi günlük olarak kullanır. Bu becerilerin kariyerinde nasıl bir kapı araladığını görmek istersen blog içeriklerimizde pek çok pratik örnek bulabilirsin.
GitHub Nasıl Çalışır? Temel Kavramlar
GitHub'ı gerçekten anlamak, birkaç temel kavramı sindirmekten geçer. Bu kavramlar ilk bakışta yabancı görünse de günlük kullanımda hızla oturur; nitekim canlı yazılım kurslarında bu terimler ilk haftalarda uygulamalı örneklerle işlenir. Aşağıdaki liste, GitHub dünyasının ortak dilini öğrenmen için sağlam bir başlangıç noktasıdır.
- Repository (repo): Projenin tüm dosyalarını ve geçmişini barındıran depo. Her proje kendi repository'sinde yaşar.
- Commit: Yaptığın değişikliklerin bir açıklama ile kaydedilmiş anlık görüntüsü. Her commit projenin geçmişinde bir kilometre taşıdır.
- Branch (dal): Ana koddan bağımsız olarak yeni bir özellik geliştirmek için açılan paralel çalışma alanı.
maingenellikle ana daldır. - Pull request (PR): Bir branch'teki değişikliklerin ana koda katılmasını önermek için açılan istek; ekip burada kodu inceler ve tartışır.
- Merge: Onaylanan bir branch'in ana koda birleştirilmesi işlemi.
- Fork: Başkasına ait bir repository'nin senin hesabına kopyalanması; açık kaynak katkısının kapısıdır.
- Clone: Uzaktaki bir repository'nin bilgisayarına indirilmesi.
- Issue: Hataları, önerileri veya yapılacak işleri takip etmek için açılan konu başlığı.
Bu kavramların hepsi aslında tek bir amaca hizmet eder: birden fazla insanın aynı proje üzerinde çakışmadan çalışabilmesi. İş birliği akışı, herkesin kendi branch'inde çalışıp pull request ile değişikliklerini birleştirmesiyle düzenli ilerler; bu mantığı erken kavramak, ileride ekip projelerinde büyük fark yaratır ve ücretsiz kariyer testi ile hangi rolde ilerleyeceğini düşünürken de yol gösterir.
Son olarak iki görsel öğe hafife alınmamalı: README dosyası ve profil sayfası. README, repository'nin giriş kapısıdır; projenin ne yaptığını, nasıl çalıştırılacağını anlatır ve iyi yazılmış bir README profesyonellik hissi verir. Profil sayfan ise senin dijital vitrinindir; buradaki katkı grafiği ve öne çıkan projeler, seni ilk kez görenler için ilk izlenimi oluşturur. Bu görünürlüğün değerini vurgulayan yaklaşımı Berk Keskin'in eğitim anlayışında da görebilirsin.
İlk Adım: Git ve GitHub'a Başlarken Temel İş Akışı
Kavramları öğrendikten sonra iş uygulamaya döküldüğünde her şey netleşir. Aşağıdaki adımları sırayla takip ederek ilk projeni GitHub'a yükleyebilir, temel iş akışını kendi ellerinle deneyimleyebilirsin. Bu tür rehberli uygulamalar, video eğitimlerinde tekrar tekrar izleyerek pekiştirebileceğin türden konulardır.
- Hesap aç: github.com adresinden ücretsiz bir hesap oluştur ve bilgisayarına Git'i kur.
- Repository oluştur: "New repository" butonuyla yeni bir depo aç, ona anlamlı bir isim ver ve README eklemeyi işaretle.
- Clone et: Repository'yi bilgisayarına indir:
git clone https://github.com/kullanici/proje.git - Değişiklik yap: İndirdiğin klasörde bir dosya oluştur veya düzenle.
- Add-commit-push zinciri: Sırasıyla şu komutları çalıştır:
git add .git commit -m "İlk değişikliğim"git push origin main
Bu üçlü komut zinciri (add, commit, push) günlük çalışmanın kalbidir: add değişiklikleri hazırlar, commit onları kaydeder, push ise GitHub'a gönderir. Başlangıçta kafa karışıklığı yaşamak normaldir; bu yüzden takıldığın noktalarda birebir özel ders desteğiyle sorunu adım adım çözerek ilerlemek zaman kazandırır.
Hataya düşmeden ilerlemek için birkaç pratik ipucu işine yarayacaktır: her commit mesajını anlamlı ve açıklayıcı yaz, tek bir dev commit yerine küçük ve sık commit'ler yap, push'tan önce git status ile durumu kontrol et. Bu alışkanlıkları erken kazanmak, ileride büyük projelerde seni karmaşadan kurtarır; benzer düzenli pratik kültürünü sıkça sorulan sorular bölümündeki öğrenme önerilerinde de bulabilirsin.
GitHub Neden Önemli? Kariyer ve Portföy Açısından
GitHub yalnızca bir kod deposu değil, aynı zamanda bir yazılımcının en güçlü kariyer aracıdır. Bugün pek çok işveren, bir aday hakkında fikir edinmek için önce GitHub profiline bakar; çünkü bu profil, kişinin gerçekten ne ürettiğini CV'den çok daha net gösterir. Bu görünürlüğün önemini erken fark edenler için Berk Akademi yaklaşımı, öğrenmeyi baştan projeye dönüştürmek üzerine kuruludur.
Profilinde biriken projeler, işe alım sürecinde somut kanıt işlevi görür. Bir mülakatta "şunu yapabilirim" demek yerine "şunu yaptım, işte kodu" diyebilmek büyük fark yaratır. Bunun yanında açık kaynak projelere yaptığın küçük katkılar bile hem teknik yetkinliğini hem de ekiple çalışabilme becerini gösterir; bu yolculuğa nereden başlayacağını netleştirmek istersen kariyer keşif testi yön verebilir.
GitHub üzerinde çalışmak aynı zamanda gerçek ekip çalışması pratiği sunar. Pull request açmak, kod incelemesi almak, issue'lar üzerinden tartışmak; bunların hepsi profesyonel yazılım hayatının günlük ritüelleridir. Bu becerileri okulda ya da yalnız çalışırken kazanmak zordur, ancak canlı ve rehberli bir ortamda çok daha hızlı öğrenilir; bu yüzden canlı sınıflı programlarda proje temelli çalışma öne çıkarılır.
Öğrenirken proje biriktirmek, sadece iş bulmak için değil, düşünerek üreten bir öğrenme kültürü geliştirmek için de değerlidir. Her yeni repo, çözdüğün bir problemin ve verdiğin kararların izini taşır; bu da ezberden uzak, gerçekten kavrayarak ilerlemeni sağlar. Bu felsefeyi merak ediyorsan eğitmenin öğretim yaklaşımını inceleyebilir, öğrendiklerini nasıl kalıcı hale getireceğini görebilirsin.
GitHub Alternatifleri Nelerdir?
GitHub en popüler seçenek olsa da, Git tabanlı tek platform değildir. Aynı sürüm kontrolü mantığını paylaşan pek çok alternatif vardır ve hangisini seçeceğin çoğu zaman ekibinin ihtiyaçlarına, gizlilik önceliklerine ve bütçesine bağlıdır. İşin güzel yanı, bu alternatiflerin hepsi aynı Git komutlarıyla çalışır; yani bir kez git clone, git commit ve git push mantığını öğrendiğinde, platform değiştirmek senin için sorun olmaz. Bu evrensel temeli sağlam kurmak istiyorsan canlı yazılım kurslarımızdaki uygulamalı Git modüllerinden faydalanabilirsin.
En sık karşılaşacağın alternatiflerin başında GitLab gelir. GitLab yalnızca kod barındırmakla kalmaz, dahili CI/CD (sürekli entegrasyon ve dağıtım) araçlarıyla tam bir DevOps platformu sunar. Kendi sunucuna kurabildiğin (self-hosted) sürümü olması, kurumsal veri gizliliği isteyen ekipler için büyük bir avantajdır. Bu tür kurumsal iş akışlarının nasıl kurgulandığını daha yakından anlamak istersen, süreci birebir örneklerle işlediğimiz 1-1 özel ders programımıza göz atabilirsin.
Bitbucket ise özellikle Jira ve Trello gibi proje yönetim araçlarıyla aynı ekosistemde yer aldığı için kurumsal ekiplerde yaygın kullanılır. Küçük ekipler için özel (private) depo desteği geleneksel olarak cömerttir. Buna karşılık Gitea gibi hafif, açık kaynaklı ve tamamen kendi kontrolünde barındırılan seçenekler, kendi sunucunda düşük kaynakla çalışan sade bir çözüm arayanlara hitap eder. Bu platformların hangisinin sana uygun olduğunu değerlendirirken kariyer hedeflerini de göz önünde bulundurmak istersen, ücretsiz kariyer testimiz yön bulmana yardımcı olabilir.
| Platform | Öne Çıkan Özellik | Kimler İçin İdeal? |
|---|---|---|
| GitHub | En geniş topluluk, güçlü portföy görünürlüğü | Açık kaynak, bireysel geliştiriciler, öğrenciler |
| GitLab | Dahili CI/CD, self-hosted seçenek | DevOps odaklı ekipler, gizlilik önceliği olan kurumlar |
| Bitbucket | Jira/Trello entegrasyonu | Atlassian ekosistemini kullanan kurumsal ekipler |
| Gitea | Hafif, açık kaynak, kendi sunucunda | Kendi altyapısını yönetmek isteyen geliştiriciler |
Hangi platformu seçersen seç, unutma: temel mantık değişmez. Depo, dal, commit ve pull request kavramları hepsinde ortaktır. Bu yüzden odağını bir platformu ezberlemeye değil, Git'in çalışma mantığını anlamaya vermelisin. Bu düşünme temelli öğrenme yaklaşımını tüm programlarımızın merkezine koyuyoruz; ayrıntıları merak edersen eğitmenimiz Berk Keskin'in öğretim felsefesini inceleyebilirsin.
Yeni Başlayanların GitHub'da Yaptığı Yaygın Hatalar
Eğitmenlik yıllarımda yüzlerce öğrencinin GitHub yolculuğuna tanık oldum ve neredeyse herkesin aynı tuzaklara düştüğünü gördüm. İyi haber şu: Bu hataların hepsi son derece normal ve kolayca düzeltilebilir. Önemli olan onları erkenden fark edip doğru alışkanlıkları kazanmaktır. Bu alışkanlıkları sistemli biçimde oturtmak istersen, uygulamalı senaryolarla ilerleyen video eğitimlerimizden düzenli tekrar yaparak pekiştirebilirsin.
En yaygın hataların başında anlamsız commit mesajları gelir. "düzeltme", "asdf" veya "son değişiklik" gibi mesajlar üç ay sonra geri döndüğünde hiçbir işine yaramaz. Çözüm basit: Her commit mesajını "ne yaptığını" net anlatan kısa bir cümleyle yaz; örneğin "Kullanıcı giriş formuna doğrulama eklendi" gibi. İyi commit alışkanlıkları takım çalışmasının temelidir ve bunu birebir geri bildirimle geliştirmek istersen özel ders randevusu alarak projelerin üzerinden birlikte geçebiliriz.
İkinci büyük hata .gitignore dosyasını kullanmamaktır. Yeni başlayanlar çoğunlukla tüm klasörü olduğu gibi yükler; böylece geçici dosyalar, bağımlılık klasörleri ve en tehlikelisi gizli bilgiler depoya sızar. Bu noktada en kritik uyarım şu: API anahtarları, şifreler ve .env dosyalarını asla GitHub'a yükleme. Bir kez public bir depoya girdiğinde onları anında iptal etmen gerekir. Bu tür güvenlik reflekslerini erken kazanmak, seni ileride ciddi sorunlardan korur; konunun nasıl işlendiğini merak edersen sıkça sorulan sorular sayfamızdaki ilgili başlıklara bakabilirsin.
Bir diğer sık hata, doğrudan main dalına push yapmaktır. Tek başına çalışırken zararsız görünse de, takım ortamında bu alışkanlık kaosa yol açar. Doğru yaklaşım, yeni bir dal açıp değişiklikleri orada geliştirmek ve pull request ile birleştirmektir. Aynı şekilde birçok kişide gördüğüm çakışma (merge conflict) korkusu da gereksizdir; çakışma bir hata değil, iki değişikliğin çakıştığını sana bildiren normal bir uyarıdır ve çözmeyi öğrendiğinde tamamen zararsızdır. Bu gerçek proje senaryolarını takım simülasyonlarıyla deneyimlemek istersen, canlı sınıflı eğitimlerimizde bu iş akışını birlikte prova ediyoruz.
Son olarak, birçok öğrenci GitHub'ı yalnızca kod deposu sanıp README dosyasını ihmal eder. Oysa README, projenin vitrinidir; işverenler önce onu okur. Kısa bir açıklama, kurulum adımları ve ekran görüntüsü eklemek, sıradan bir depoyu profesyonel bir portföy parçasına dönüştürür. Bu tür detayların kariyerine nasıl değer kattığını daha somut görmek istersen kariyerini keşfet testimizle yönünü netleştirebilirsin.
Sık Sorulan Sorular
Git ve GitHub aynı şey mi?
Hayır. Git, bilgisayarında çalışan bir sürüm kontrol sistemidir; kod değişikliklerini kaydeden yazılımın kendisidir. GitHub ise Git depolarını internette barındıran, işbirliği ve paylaşım imkânı sunan bir platformdur. Git motordur, GitHub o motoru kullanan bir servistir.
GitHub kullanmak için Git bilmek zorunda mıyım?
Temel düzeyde Git mantığını bilmen büyük avantaj sağlar. GitHub'ın web arayüzüyle bazı işlemleri Git komutu yazmadan yapabilirsin, ancak gerçek projelerde clone, commit, push ve pull komutlarını bilmeden verimli çalışamazsın. Git öğrenmek, GitHub'ı doğru kullanmanın anahtarıdır.
GitHub ücretsiz mi?
Evet, GitHub'ın ücretsiz bir planı vardır ve bireysel geliştiricilerin çoğu ihtiyacını fazlasıyla karşılar. Ücretsiz planda hem herkese açık (public) hem de özel (private) depolar oluşturabilirsin. Daha ileri ekip özellikleri ve gelişmiş yönetim araçları için ücretli planlar da mevcuttur.
GitHub yerine hangi alternatifleri kullanabilirim?
GitLab, Bitbucket ve Gitea en yaygın alternatiflerdir. GitLab dahili CI/CD ve self-hosted seçenekleriyle öne çıkar, Bitbucket Atlassian ekosistemiyle uyumludur, Gitea ise kendi sunucunda çalışan hafif bir açık kaynak çözümdür. Hepsi aynı Git mantığına dayandığı için birinden diğerine geçmek kolaydır.
Yazılıma yeni başlayan biri GitHub'ı ne zaman öğrenmeli?
Programlamanın temellerini kavradıktan hemen sonra, yani ilk küçük projelerini yapmaya başladığında GitHub'a geçmelisin. Erken başlamak, kodlarını düzenli tutma alışkanlığı kazandırır ve zamanla büyüyen bir portföy oluşturmanı sağlar. Beklemek yerine, ilk projelerinden itibaren kullanmaya başlaman en sağlıklısıdır.
GitHub'a yüklediğim kodları herkes görebilir mi?
Bu, deponu nasıl ayarladığına bağlıdır. Deponu "public" yaparsan herkes görebilir; "private" yaparsan yalnızca senin ve yetki verdiğin kişiler erişebilir. Portföy amacıyla public depolar idealdir, ancak hassas veya kişisel projelerini private tutabilirsin.
GitHub, yazılım kariyerinin görünür yüzü ve Git ise onun sağlam temelidir; ikisini birlikte öğrendiğinde hem düzenli çalışan hem de dünyaya açılan bir geliştirici olursun. Bu yolculuğa düşünerek üreten bir öğrenme kültürüyle başlamak istersen, uygulamalı proje senaryolarıyla ilerlediğimiz canlı yazılım eğitimlerimize katılarak Git ve GitHub'ı gerçek projeler üzerinde ustalaşana kadar deneyimleyebilirsin.