GitHub: nedir, özellikleri ve nasıl çalışır

Yazar: IT Sectr Yayınlanma: 2026-05-09 Okuma süresi: 8 dk

GitHub, Microsoft'a ait olan, Git deposu barındırma, ortak geliştirme ve süreç otomasyonu için en büyük web platformudur. Yalnızca sürüm kontrollü kod depolama değil, aynı zamanda eksiksiz bir proje yönetimi araçları seti sağlar: Issue Tracking, kod incelemeli Pull Request, CI/CD için Actions ve dokümantasyon için Wiki. GitHub, 2024'e göre, platformda 100 milyondan fazla geliştirici ve 420 milyon depo bulunmaktadır.

Önemli Noktalar

  • GitHub, kod inceleme, CI/CD ve proje yönetimi araçlarıyla Git depoları için bir web platformudur.
  • Pull Request, tartışma ve kod incelemesiyle değişiklik yapmanın ana mekanizmasıdır.
  • GitHub Actions, harici CI hizmetleri olmadan derleme, test ve dağıtımı otomatikleştirir.
  • Issues ve Projects, yerleşik bir görev takibi ve sprint yönetimi sistemi sağlar.
  • GitHub Pages, statik siteler ve dokümantasyon için ücretsiz barındırma sunar.

GitHub Nedir?

GitHub, Git depolarında depolama ve işbirliği için bir web hizmetidir; 2008 yılında Tom Preston-Werner, Chris Wanstrath ve PJ Hyett tarafından kurulmuştur. 2018'de şirket, Microsoft tarafından 7,5 milyar dolara satın alınmıştır. Platform, tüm Git işlemleri için bir web arayüzü sağlar ve üzerine fork, yıldız, abonelik, kod incelemesi ve yerleşik bir sürekli entegrasyon sistemi gibi sosyal özellikler ekler.

GitHub ile rakipleri arasındaki temel fark, açık ekosistemi ve en büyük geliştirici topluluğudur. GitHub, Android, Kubernetes, React, Swift, Kotlin ve binlerce diğer açık kaynak projenin kaynak kodunu barındırır. Bu, platformu yalnızca bir kod depolama aracı değil, aynı zamanda geliştiriciler için bir sosyal ağ haline getirir: projeleri takip edebilir, değişiklikleri tartışabilir ve pull request'ler aracılığıyla katkıda bulunabilirsiniz.

Bir Microsoft raporuna (2024) göre, her gün 10 milyondan fazla yeni Pull Request GitHub üzerinden geçmekte ve aylık aktif kullanıcı sayısı 100 milyonu aşmıştır. Platform, 500'den fazla programlama dilini, dosya uzantısına göre otomatik dil algılamayı ve kod sözdizimi vurgulamayı destekler.

GitHub'ın Temel Özellikleri

GitHub'ın işlevselliği basit Git barındırmanın çok ötesine geçer. Platform şunları sağlar: GitHub Actions — yerleşik bir CI/CD sistemi; GitHub Packages — paketler ve konteynerler için bir kayıt defteri; GitHub Codespaces — VS Code tabanlı bulut geliştirme ortamları; GitHub Discussions — topluluk için bir forum; GitHub Security — otomatik bağımlılık güncellemeleri ve güvenlik açığı taraması için Dependabot; GitHub Copilot — kod yazmak için bir AI asistanı.

Kuruluşlar için GitHub, GitHub Enterprise sunar — kendi barındırmalı (GitHub Enterprise Server) veya bulut dağıtımlı (GitHub Enterprise Cloud) bir kurumsal sürüm. Kurumsal özellikler arasında SAML/SSO kimlik doğrulaması, denetim günlüğü, depo güvenlik politikaları ve %99,95 kullanılabilirlik SLA'sı bulunur. Enterprise sürümü Google, Apple ve Airbnb gibi şirketler tarafından kullanılmaktadır.

GitHub'ın önemli bir özelliği, web arayüzünü kullanmadan komut satırından tüm platform işlemlerini gerçekleştirmenizi sağlayan GitHub CLI'dır (gh). gh ile depolar oluşturabilir, Issues'leri yönetebilir, Pull Request'leri inceleyebilir ve Actions'ları doğrudan terminalden çalıştırabilirsiniz, bu da komut satırına alışkın geliştiricilerin işini hızlandırır.

ÖzellikAmaçKullanılabilirlik
ActionsCI/CD ve otomasyonÜcretsiz 2000 dk/ay
CodespacesVS Code tabanlı bulut IDEÜcretli, 60 saat/ay ücretsiz
PackagesPaket ve Docker imajı barındırmaÜcretsiz 500 MB
DependabotOtomatik bağımlılık güncellemeleriHerkese açık depolar için ücretsiz
PagesStatik site barındırmaÜcretsiz

Pull Request ve Kod İncelemesi

Pull Request (PR), GitHub'da bir projede değişiklik yapmanın ana mekanizmasıdır. Bir geliştirici, değişikliklerle bir dal oluşturur, bunu GitHub'da yayınlar ve ana dala bir birleştirme isteği (Pull Request) gönderir. Projenin diğer katılımcıları dallar arasındaki farkı (diff) görür, belirli kod satırlarında yorum bırakabilir, değişiklik önerebilir ve isteği onaylayabilir veya reddedebilir.

GitHub'daki kod inceleme süreci PR'lar etrafında inşa edilmiştir. Her yorum, diff'teki belirli bir satıra eklenir ve üç türde olabilir: Comment (normal yorum), Request Changes (düzeltme gerektirir) ve Approve (onay). Değişiklikler yapıldıktan sonra, yazar yeni bir commit ile PR'ı günceller ve inceleme süreci tekrarlanır. Tüm itirazlar çözüldüğünde ve PR onaylandığında, değişiklikler hedef dala birleştirilir.

bash
# Özellik dalı oluşturma ve push etme
git checkout -b fix-login-bug
git add src/
git commit -m "Fix login validation error"
git push -u origin fix-login-bug

# CLI ile PR oluşturma
gh pr create --base main --title "Fix login validation" \
    --body "Fixed edge case with empty email field"

# PR'ı görüntüleme ve birleştirme
gh pr review --approve fix-login-bug
gh pr merge --squash fix-login-bug

GitHub, dal koruma kurallarını destekler: main'e doğrudan push'ları engelleyebilir, birleştirmeden önce zorunlu onay sayısı isteyebilir, Actions kontrolleri çalıştırabilir ve birleştirmeden önce dalın güncel olmasını isteyebilirsiniz. Dal koruması, Settings → Branches altında yapılandırılır ve üretim projeleri için zorunlu bir uygulamadır ve ana dala kararsız kodun yanlışlıkla eklenmesini önler.

GitHub Actions ve CI/CD

GitHub Actions, depo içinde doğrudan iş akışlarını otomatikleştirmenizi sağlayan yerleşik bir CI/CD platformudur. İş akışları, .github/workflows/ dizininde bulunan YAML dosyalarında tanımlanır. Her iş akışı, runner'lar — Linux, Windows veya macOS ile sanal makineler — üzerinde çalışan bir veya daha fazla işten oluşur.

Actions, olay odaklı bir modeli destekler: iş akışları, push, PR oluşturma, sürüm yayınlama, programa göre veya webhook aracılığıyla tetiklenir. Bu, geliştirici müdahalesi olmadan derleme, test çalıştırma, statik kod analizi, uygulama mağazalarında yayınlama ve sunucuya dağıtımı otomatikleştirmenizi sağlar. Aşağıda bir Android projesi için örnek bir iş akışı verilmiştir:

yaml
name: Android CI

on:
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up JDK 17
        uses: actions/setup-java@v4
        with:
          java-version: '17'
      - name: Build with Gradle
        run: ./gradlew assembleDebug

Actions ekosistemi, GitHub Marketplace'te 20.000'den fazla hazır eylem içerir. Popüler eylemler: checkout (depoyu klonlama), setup-java/setup-node/setup-python (ortam kurulumu), upload-artifact (derleme yapıtlarını kaydetme), cache (hız için bağımlılık önbelleğe alma), slack-notify (Slack'e bildirim gönderme). Actions ayrıca matris derlemelerini de destekler — birden çok işletim sistemi veya dil sürümünde eşzamanlı yürütme.

GitHub Projects ve Issues

Issues, GitHub'da yerleşik bir görev takip sistemidir. Her Issue'nun bir başlığı, açıklaması, etiketleri, atananları, kilometre taşları ve bağlantılı Pull Request'leri vardır. Issues'ler şablonlanabilir — hata raporları, özellik talepleri veya sorular için farklı şablonlar kullanılır ve oluşturma sırasında otomatik olarak eklenir.

GitHub Projects (önceden Projects Beta), Jira ve Trello'ya benzer, panolara dayalı bir proje yönetimi aracıdır. Projects, özel alanları (durum, öncelik, sprint), Issues ve Pull Request'lerle bağlantıyı, görev durumu değiştiğinde kart hareketinin otomasyonunu ve yanma grafiği (burndown chart) şeklinde analitiği destekler. Projects iki modda kullanılabilir: Table (tablo görünümü) ve Board (kanban panosu).

Sürüm yönetimi için GitHub, Milestones (kilometre taşları) sağlar — bir son tarihle ortak bir hedef etrafında birleşmiş Issue ve PR grupları. Her kilometre taşı ilerlemeyi gösterir: kaç görevin açık olduğu, kaçının kapalı olduğu ve son teslim tarihine uyulup uyulmadığı. Kilometre taşları, Releases ile entegre olur — bir sürüm yayınlarken, onu bir kilometre taşına bağlayabilir ve kapalı Issues'lere dayalı olarak otomatik olarak bir CHANGELOG oluşturabilirsiniz.

GitHub Pages ve Wiki

GitHub Pages, depo içeriğini https://username.github.io/repository adresinde otomatik olarak yayınlayan, statik siteler için ücretsiz barındırmadır. Pages, HTML, CSS, JavaScript ve statik oluşturucuları destekler: Jekyll (yerleşik), Hugo, Next.js (dışa aktarma) ve MkDocs. Yapılandırma, yayınlama için dal ve dizin seçiminin yanı sıra özel alan adı desteğini içerir.

Teknik dokümantasyon için GitHub, Wiki sağlar — aynı zamanda bir Git deposu olarak depolanan yerleşik bir wiki sistemi. Wiki, Markdown'ı destekler ve sayfaların hem web arayüzü üzerinden hem de yerel olarak wiki deposuna push yoluyla düzenlenmesine olanak tanır. Her Wiki sayfasının kendi değişiklik geçmişi vardır; bu, API, mimari ve proje süreçlerini belgelemek için kullanışlıdır.

GitHub Pages + Jekyll kombinasyonu, dokümantasyon siteleri için popüler bir çözümdür. Jekyll, Markdown dosyalarını otomatik olarak statik HTML sayfalarına dönüştürür, temaları, gezinmeyi ve aramayı destekler. Örneğin, Android Developers belgeleri daha önce GitHub Pages'de Jekyll kullanıyordu ve şimdi dahili bir platform kullanıyor, ancak binlerce açık kaynak proje, siteleri için bu kombinasyonu kullanmaya devam ediyor.

GitHub CLI: Tarayıcısız yönetim

GitHub CLI (gh), komut satırı aracılığıyla tüm platform işlemlerini gerçekleştirmenizi sağlar: depolar oluşturma, Issues'leri yönetme, Pull Request'leri görüntüleme ve onaylama, Actions'ları çalıştırma. gh repo create my-project --public komutu, uzak bir depo oluşturur ve onu yerel olana bağlarken, gh pr create mevcut daldan bir Pull Request oluşturur. CLI, web arayüzü yerine terminali tercih eden geliştiricilerin işini hızlandırır.

Otomasyon için GitHub API

GitHub REST API ve GraphQL API, platformun tüm özelliklerine programlı erişim sağlar: Issue oluşturma, kullanıcı yönetimi, istatistik alma ve Actions yönetimi. GraphQL API, karmaşık sorgular için tercih edilir çünkü tek bir istekte yalnızca gerekli alanları almayı sağlar. REST API için hız sınırı, kimliği doğrulanmış kullanıcılar için saatte 5000 istektir. API, GitHub'ı harici CI sistemleri ve dahili DevOps araçlarıyla entegre etmek için yaygın olarak kullanılır.

Hızlı notlar için GitHub Gist

GitHub Gist, tam bir depo oluşturmadan kod parçacıkları yayınlamak için bir hizmettir. Gist, sözdizimi vurgulama, harici sitelere gömme ve sürüm geçmişini destekler. Her Gist, herkese açık (aramada görünür) veya gizli (yalnızca bağlantı yoluyla erişilebilir) olabilir. Gist, ekip yazışmalarında yapılandırmaları, günlükleri ve kod örneklerini hızlı bir şekilde paylaşmak ve ayrıca geliştiriciler için Pastebin alternatifi olarak kullanılır.

Sıkça Sorulan Sorular

GitHub, GitLab'dan nasıl farklıdır?

GitHub, açık topluluk ve sosyal özelliklere (fork, yıldız) odaklanır. GitLab, daha güçlü yerleşik CI/CD ve Actions dakikalarında sınırlama olmaksızın kendi kendine yönetilen barındırma sunar.

Bir ekip için GitHub'ın maliyeti nedir?

GitHub Team, kullanıcı başına aylık 4 dolardır ve sınırsız özel depo, dal koruması ve Actions (3000 dakika) sağlar. Ücretsiz plan, küçük açık kaynak projeleri için uygundur.

Özel depo nasıl oluşturulur?

Depo oluştururken, Public yerine Private'ı seçin. Özel depolarda, kod yalnızca davet edilen işbirlikçilere görünür. Ücretsiz planda, özel depolar en fazla 3 işbirlikçi sınırıyla kullanılabilir.

GitHub Copilot nedir?

GitHub Copilot, OpenAI Codex tabanlı, gerçek zamanlı kod otomatik tamamlama sağlayan bir AI asistanıdır. VS Code, JetBrains ve Neovim'de çalışır, tüm popüler programlama dillerini destekler.

GitHub'da bir depo nasıl silinir?

Settings → Danger Zone → Delete this repository'ye gidin. Silme işlemi geri alınamaz — tüm commit'ler, Issue'ler ve Wiki, kurtarma olasılığı olmadan silinir. Önceden yedek aldığınızdan emin olun.

Özet

  • GitHub, yerleşik CI/CD ve proje yönetimi araçlarıyla Git depolarını barındırmak için en büyük platformdur.
  • Pull Request, satır yorumları, onaylar ve dal korumasıyla bir kod inceleme süreci sağlar.
  • GitHub Actions, depodaki YAML yapılandırması aracılığıyla derleme, test ve dağıtımı otomatikleştirir.
  • Issues ve Projects, özel alanlar ve kanban panolarıyla küçük ekipler için Jira ve Trello'nun yerini alır.
  • GitHub Pages ve Wiki, dokümantasyon ve statik siteler için ücretsiz barındırma sağlar.
  • Ekosistem, Copilot (AI kodlama), Codespaces (bulut IDE), Packages ve Dependabot'u içerir.
  • Başlayın — bir depo ve ilk Pull Request'inizi oluşturarak, ekibin temel ihtiyaçlarını karşılayabilirsiniz.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun