Git nedir, GitHub nedir — fark ne?
Git vs GitHub — what's the difference?
Bu derste neler öğreneceksin
- Git (version control sistemi) ile GitHub (platform) arasındaki temel farkı anlamak
- Distributed version control sisteminin neden önemli olduğunu açıklamak
- GitHub'ın Git'in üstüne ne eklediğini listelemek
- Sınav soru tiplerinde bu ayrımın nerede sorulduğunu tanımak
GH-900’ün ilk ve en temel sorusu: Git ile GitHub aynı şey mi? Hayır — ve bu ayrım sınavda doğrudan çıkar. Git bir araçtır; GitHub o aracın üstünde kurulu bir platform.
Git nedir?
Git, Linus Torvalds tarafından 2005’te Linux kernel geliştirme sürecini yönetmek için oluşturulan açık kaynaklı, dağıtık version control sistemidir.
Temel özellikleri:
- Dağıtık (distributed): Her geliştiricinin yerel makinesinde tam repo geçmişi vardır. Merkezi sunucu olmadan çalışabilir.
- Hız: Yerel işlemler ağa bağlı değil, neredeyse anlık
- Branching: Ucuz ve hızlı branch oluşturma — her branch sadece bir pointer
- Integrity: Her commit SHA-1 hash ile imzalanır; geçmiş değiştirilemez
Git tamamen komut satırı tabanlıdır ve herhangi bir hosting platformuna ihtiyaç duymaz. Yerel makinende git init yazarsan Git reposu oluşturmak için internete ihtiyacın yok.
git init my-project # Yeni repo başlat
git clone <url> # Mevcut repoyu yerel makineye indir
git log --oneline # Commit geçmişini listele
git diff # Değişiklikleri göster
GitHub nedir?
GitHub, Git repolarını barındıran ve üstüne collaboration, CI/CD, proje yönetimi, güvenlik gibi araçlar ekleyen bir web platformudur. Microsoft bünyesinde (2018’den beri).
Git’in üstüne ne ekler:
| Özellik | Açıklama |
|---|---|
| Remote hosting | Repolarını bulutta sakla, paylaş |
| Pull Requests | Kod review ve merge workflow’u |
| Issues | Hata ve görev takibi |
| GitHub Actions | CI/CD — push/PR tetiklemeli otomasyon |
| GitHub Pages | Statik site hosting |
| GitHub Projects | Kanban/tablo tabanlı proje yönetimi |
| GitHub Packages | Docker/npm gibi paket registry |
| GitHub Copilot | AI kod asistanı |
| Security features | Dependabot, secret scanning, code scanning |
| Discussions | Forum benzeri tartışma alanı |
Sınav perspektifinden kritik ayrım
Sınavda şu tarzda sorular çıkar:
“Bir geliştirici
git pushyaparken internet bağlantısı kesiliyor. Lokal commit’lerin durumu nedir?”
Cevap: git commit yerel işlemdir; commit’ler kaybolmaz. Sadece push işlemi (GitHub’a gönderme) başarısız olur.
“GitHub olmadan Git kullanılabilir mi?”
Cevap: Evet. Git standalone çalışır. GitHub Git’e bağımlıdır, ama Git GitHub’a bağımlı değildir.
Alternatif Git hosting platformları
Git GitHub’a özgü değildir. Aynı Git komutları şu platformlarla da çalışır:
- GitLab — self-hosted veya cloud, CI/CD entegre
- Bitbucket — Atlassian ekosistemi (Jira entegrasyonu)
- Azure DevOps Repos — Microsoft’un kurumsal çözümü
- Gitea — açık kaynak, self-hosted
GH-900 sınavı GitHub platformuna odaklanır; diğer platformlara girmez.
Önemli terminoloji
| Terim | Açıklama |
|---|---|
| Repository (repo) | Projenin tüm dosya ve geçmişini içeren Git veritabanı |
| Local repo | Kendi bilgisayarındaki kopya |
| Remote repo | GitHub’daki (veya başka sunucudaki) kopya |
| Origin | Genellikle varsayılan remote’a verilen isim |
| Clone | Remote repoyu local’a kopyalamak |
| Fork | GitHub’da başka kullanıcının reposunu kendi hesabına kopyalamak |
Git ve GitHub’ın farkını net kavramak, sınavın geri kalanını anlamak için zemin sağlar. Bu ayrımı kafanda netleştirmeden diğer derslere geçme.
Sırada ne var?
Bir sonraki derste commit, branch ve merge — Git’in temel çalışma döngüsünü ele alacağız.