Yaklaşık 3 dakikalık okuma
Bir betiğin “çalışan son hâlini” bulmak için yedek_son_v2_gercekson.ps1 gibi dosya adlarıyla uğraştıysanız, sürüm kontrolüne ihtiyacınız var demektir. Bu yazıda yazılımcıların ve sistem yöneticilerinin vazgeçilmezi olan Git ve GitHub‘ı, temel kavramlarından günlük kullanımına kadar anlatıyorum.
Git ve GitHub Aynı Şey mi?
Değil, ve bu ayrım önemlidir:
- Git: Bilgisayarınızda çalışan, dosyalarınızdaki her değişikliği kaydeden açık kaynaklı bir sürüm kontrol sistemidir. İnternet bağlantısı olmadan da çalışır.
- GitHub: Git depolarınızı internette barındıran, ekip çalışması için ek özellikler sunan bir platformdur. Microsoft’a aittir. Benzer alternatifler arasında GitLab, Bitbucket ve kendi sunucunuza kurabileceğiniz Gitea bulunur.
Kısacası Git aracın kendisi, GitHub ise o aracın bulut tabanlı buluşma noktasıdır.
Temel Kavramlar
| Kavram | Anlamı |
|---|---|
| Repository (repo, depo) | Projenizin tüm dosyalarını ve değişiklik geçmişini tutan klasör |
| Commit | Belirli bir andaki değişikliklerin açıklamalı kaydı, bir “kayıt noktası” |
| Branch (dal) | Ana koddan bağımsız çalışabileceğiniz paralel bir kopya |
| Merge | Bir daldaki değişiklikleri başka bir dala birleştirmek |
| Clone | Uzaktaki bir depoyu bilgisayarınıza kopyalamak |
| Push / Pull | Değişiklikleri GitHub’a göndermek / GitHub’dan almak |
| Pull Request (PR) | Bir daldaki değişikliklerin incelenip ana dala alınması için açılan istek |
| Fork | Başkasının deposunun kendi hesabınıza kopyası |
Public ve Private Depo
GitHub’da depolar iki türlüdür:
- Public (açık): Herkes görebilir. Açık kaynak projeler için uygundur.
- Private (özel): Yalnızca sizin ve davet ettiğiniz kişilerin görebildiği depolardır. Ücretsiz hesapta da sınırsız sayıda private depo açabilirsiniz.
Şirket betikleri, müşteri projeleri ve yapılandırma dosyaları için her zaman private depo kullanın.
Kurulum ve İlk Ayarlar
1. Git Kurulumu
# Ubuntu / Debian
sudo apt install git
# Windows (winget ile)
winget install --id Git.Git -e
2. Kimlik Bilgileri
Commit’lerde görünecek adınızı ve e-postanızı tanımlayın:
git config --global user.name "Bayram Can Taşkın"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main
3. GitHub’a SSH ile Bağlanma
GitHub, komut satırında hesap parolasıyla girişi kabul etmez. En pratik yöntem SSH anahtarıdır. Anahtar oluşturmayı SSH Anahtar ile Şifresiz Giriş yazısında anlatmıştım. Açık anahtarınızı (id_ed25519.pub içeriği) GitHub’da Settings › SSH and GPG keys › New SSH key bölümüne ekleyin ve bağlantıyı test edin:
ssh -T [email protected]
“Hi kullaniciadi! You’ve successfully authenticated” mesajını görmelisiniz.
Alternatif olarak GitHub’ın resmi komut satırı aracı GitHub CLI ile tarayıcı üzerinden oturum açabilirsiniz:
gh auth login
Günlük Kullanım: Adım Adım
Yeni Bir Proje Başlatmak
mkdir betiklerim && cd betiklerim
git init
echo "# Betiklerim" > README.md
git add .
git commit -m "İlk commit"
GitHub’da boş bir depo oluşturduktan sonra yerel depoyu ona bağlayıp gönderin:
git remote add origin [email protected]:kullaniciadi/betiklerim.git
git push -u origin main
GitHub CLI kullanıyorsanız depo oluşturma ve gönderme işini tek komutla yapabilirsiniz:
gh repo create betiklerim --private --source=. --push
Değişiklik Yapmak
git status
git add yedekle.sh
git commit -m "Yedekleme betiğine log ekle"
git push
İyi bir commit mesajı ne yapıldığını kısa ve açık şekilde anlatır. “düzeltme” yerine “Disk doluluk kontrolünde yüzde hesabını düzelt” gibi bir mesaj, aylar sonra size çok zaman kazandırır.
Dal ile Çalışmak
Canlıdaki kodu bozmadan yeni bir özellik denemek için ayrı bir dal açın:
git switch -c yeni-ozellik
# ...değişiklikleri yap, commit et...
git push -u origin yeni-ozellik
Ardından GitHub’da bu dal için bir Pull Request açın; değişiklikleri inceleyip onayladıktan sonra main dalına birleştirin.
Geçmişe Bakmak
git log --oneline
git diff
.gitignore: Depoya Girmemesi Gerekenler
Parolalar, API anahtarları ve geçici dosyalar asla depoya gönderilmemelidir. Proje kök dizininde .gitignore dosyası oluşturun:
.env
*.log
node_modules/
__pycache__/
.DS_Store
Önemli: Yanlışlıkla bir parolayı commit edip GitHub’a gönderdiyseniz, sonraki commit’te silmek yeterli değildir; geçmişte kalmaya devam eder. O parolayı veya anahtarı hemen geçersiz kılın ve yenisini oluşturun.
GitHub ile Neler Yapılabilir?
- Kod ve betik arşivi: PowerShell, Bash ve Ansible betiklerinizin her sürümünü saklamak.
- Ekip çalışması: Birden fazla kişinin aynı projede çakışmadan çalışması.
- Issues: Hata kayıtları ve yapılacaklar listesi tutmak.
- GitHub Actions: Her push’ta testleri çalıştırmak, uygulamayı derlemek veya sunucuya deploy etmek (CI/CD).
- GitHub Pages: Statik web sitelerini ücretsiz yayınlamak.
- Yapılandırma yönetimi: Sunucu ayar dosyalarını sürüm kontrolüyle takip etmek.
- Yapay zeka entegrasyonu: Claude gibi yapay zeka asistanlarıyla kod yazdırıp değişiklikleri doğrudan depoya göndermek.
Sonuç
Git ve GitHub ilk bakışta karmaşık görünse de günlük kullanımda add, commit, push ve pull komutları işlerin büyük kısmını görür. Tek bir betikle başlayıp alışkanlık hâline getirmenizi öneririm. Serinin son yazısında Claude AI, GitHub ve Coolify‘ı bir araya getirerek otomatik yayına alınan bir proje kuracağız.



