“Git commit atmak” yazılımcı dünyasının ekmek-su ikilisi gibi bir şeydir. Eğer kod yazıyorsan, değişikliklerini versiyon kontrol sistemine kaydetmeyi bilmek zorundasın. Bu rehberde sana, GitHub üzerinde bir projeye commit atma sürecini sıfırdan, adım adım ve bol örnekle anlatacağım. Önemli güncelleme: Ana repoya doğrudan değil, kendi branch’inde çalışıp her zaman Pull Request (PR) ile gönderiyoruz. Ayrıca projeyi lokalde görüp test etmek için virtualenv + duty ile nasıl ayağa kaldıracağını da anlatıyorum.
1️⃣ Bu Yazıya Başlamadan Önce Okuman Gerekenler
Eğer daha önce Git ile SSH anahtarı eklemediysen veya GPG imzalı commit/etiket konusuna göz atmadıysan, önce şu iki makaleyi mutlaka oku:
- Git SSH-Key Oluşturma (Windows & Linux) 🔑
- Git ile GPG İmzalı Etiket Oluşturma ✍️
Bu rehberin sorunsuz ilerlemesi için Git kurulu olmalı, GitHub hesabına SSH anahtarın ekli olmalı, commit imzası için GPG anahtarın tanımlı olmalı ve Python kurulu olmalıdır (virtualenv ve duty
kullanacağız).
2️⃣ Ön Hazırlıklar
Git Kurulumunu Kontrol Et
Terminalini aç ve şu komutu çalıştır:
git --version
Örnek çıktı:
git version 2.50.1
Git yoksa git-scm.com/downloads üzerinden kurabilirsin.
GitHub Hesabına Giriş Yap
GitHub hesabın yoksa github.com üzerinden hızlıca oluştur. Varsa tarayıcıdan giriş yap.
SSH Bağlantısını Test Et
ssh -T git@github.com
Başarılıysa şöyle bir mesaj gelir:
Hi yuceltoluyag! You've successfully authenticated, but GitHub does not provide shell access.
GPG Anahtarını Kontrol Et
git config --global user.signingkey
Anahtar görünmüyorsa GPG yazımı takip ederek ayarla.
3️⃣ Repoyu Klonlama
Örnek repo: yuceltoluyag.github.io
git clone git@github.com:yuceltoluyag/yuceltoluyag.github.io.git
cd yuceltoluyag.github.io
HTTPS ile klonlamak istersen: git clone https://github.com/yuceltoluyag/yuceltoluyag.github.io.git
. Ancak HTTPS push sırasında kullanıcı adı/parola ister; SSH genellikle daha rahattır.
4️⃣ Kendi Branch’inde Çalış: Neden ve Nasıl?
Ana branch’e (genellikle main
) doğrudan commit/push yapmıyoruz. Bunun yerine kendimize bir branch açıp orada çalışıyoruz. Böylece ana repo düzeni bozulmuyor, tüm katkılar Pull Request (PR) ile geliyor.
Yeni branch aç:
git checkout -b benim-branchim
Örnek:
git checkout -b arkadas-landing-duzenleme
Branch isimlerini kısa, açıklayıcı ve tireli seç: bugfix-typo-footer
, feature-yeni-makale-sablonu
gibi.
5️⃣ Projeyi İlk Kez Lokalde Ayağa Kaldır (virtualenv + duty)
Değişikliklerini görüp test edebilmek için projeyi lokalde çalıştırman çok önemli. Aşağıdaki adımlar ilk kurulum içindir:
# 1) Sanal ortam oluştur
python -m venv venv
# 2) Sanal ortamı aktif et
source venv/bin/activate # Linux/Mac
# Windows PowerShell: .\venv\Scripts\Activate.ps1
# 3) Bağımlılıkları kur
pip install -r requirements.txt
# 4) Proje görevlerini/bağımlılıkları güncelle
duty update
# 5) Editörde aç (isteğe bağlı ama önerilir)
code .
# 6) Canlı yenileme ile lokal sunucuyu başlat
duty livereload
Terminal çıktısında lokal URL görürsün (çoğunlukla http://127.0.0.1:8000
veya http://localhost:8000
). Tarayıcıda bu adrese giderek yaptığın değişiklikleri anlık görebilirsin. Sunucuyu durdurmak için terminalde ctrl c
tuşlarına bas.
Sanal ortam (venv
) aktif edilmeden duty
komutlarını çalıştırırsan uygulama açılmayacaktır. Doğru komut: source venv/bin/activate
(Linux/Mac). Yanlış: source venv/bin/active
(sonu “activate” olmalı).
6️⃣ Değişiklik Yapma (Örnek)
Örneğin README.md
dosyasına ufak bir satır ekleyelim:
Bu satır, branch üzerinden yapılan commit örneğidir. 🚀
VS Code’da açmak için:
code .
Dosyayı düzenleyip kaydetmeyi unutma. Lokal sunucu açıksa (livereload), sayfa otomatik yenilenecektir.
7️⃣ Değişiklikleri Kontrol Et
Neler değişmiş?
git status
Satır bazında farkı görmek için:
git diff
Yeşil yeni eklenenleri, kırmızı kaldırılanları gösterir.
8️⃣ Commit Hazırlama ve İmzalama (GPG -S)
Değişikliklerini stage’e al:
git add .
# veya tek dosya için: git add README.md
İmzalı commit at:
git commit -S -m "README.md: örnek satır eklendi"
İyi commit mesajı kısa ve nettir. Kötü: update
. İyi: docs: README.md'ye katkı akışı eklendi
.
9️⃣ Branch’ini Remote’a Gönder (push)
Artık branch’ini GitHub’a gönderebilirsin:
git push -u origin benim-branchim
Örnek:
git push -u origin arkadas-landing-duzenleme
-u
parametresi, sonraki push/pull komutlarında branch izlemeyi kolaylaştırır.
🔟 Pull Request (PR) Aç: Her Zaman PR!
Tarayıcıdan repo sayfasına git: https://github.com/yuceltoluyag/yuceltoluyag.github.io
GitHub genelde “Compare & pull request” butonunu gösterir. Tıkla ve PR’ını oluştur. Açıklama alanında:
- Ne yaptığını
- Neden yaptığını
- Nasıl test ettiğini
kısaca anlat. Bu repo için 2. ve sonraki çalışmalarda her zaman PR açıyoruz; böylece repo sahibiyle karışıklık olmaz, kod inceleme akışı korunur.
Bu projede ana branch’e doğrudan push yapma. Tüm katkılar branch → PR akışıyla gelmelidir.
1️⃣1️⃣ GitHub Üzerinden Kontrol
PR açıldıktan sonra commit’lerini ve değişikliklerini GitHub arayüzünde görebilirsin. GPG imzası doğruysa commit yanında Verified etiketi görünür.
GPG imzası, commit’in gerçekten sana ait olduğunu doğrular ve takım çalışmasında güven sağlar.
1️⃣2️⃣ İkinci ve Sonraki Çalışma Oturumları (Tekrarlanan Akış)
Projeyi tekrar açtığında şu adımları her zaman uygula:
cd yuceltoluyag.github.io
# 1) Sanal ortamı aktif et
source venv/bin/activate # Windows: .\venv\Scripts\Activate.ps1
# 2) Proje görevlerini/bağımlılıkları güncelle
duty update
# 3) Editörde aç (opsiyonel)
code .
# 4) Lokal sunucuyu başlat (canlı yenileme)
duty livereload
Neden tekrar tekrar? Çünkü sanal ortam aktif edilmeden başlatılırsa uygulama açılmayacaktır. Ayrıca
duty update
, görevlerin/bağımlılıkların güncel kalmasını sağlar.
Yeni bir iş/özellik için önerilen akış:
# Ana branch'i güncelle:
git checkout main
git pull origin main
# Yeni branch oluştur:
git checkout -b task-kisa-adi
# Çalış, commit'le, push et:
git add .
git commit -S -m "feat: X özelliği eklendi"
git push -u origin task-kisa-adi
# Her zaman PR aç:
# GitHub -> Compare & pull request
1️⃣3️⃣ Sık Yapılan Hatalar ve Çözümleri
Hata/Belirti | Neden | Çözüm |
---|---|---|
command not found: duty |
Sanal ortam aktif değil veya bağımlılıklar kurulmamış | source venv/bin/activate → pip install -r requirements.txt → duty update |
Uygulama açılmıyor | venv aktif edilmeden komut çalıştırıldı | Her oturumda önce source venv/bin/activate |
Yanlış komut: source venv/bin/active |
Dosya adı hatalı (activate olmalı) |
Doğru komut: source venv/bin/activate |
Permission denied (publickey) |
SSH anahtarı yok/agent’e ekli değil | SSH anahtarını GitHub’a ekle, ardından ssh-add ile agent’a ekle |
gpg: signing failed |
GPG anahtarı tanımsız/parola girilmedi | git config --global user.signingkey ile ayarla; pinentry kurulu mu kontrol et |
PR’da “conflict” uyarısı | Ana branch’te yeni commit’ler var | PR açmadan önce git checkout main && git pull origin main ile güncelle |
PR açılmadı, doğrudan main’e pushlandı | Süreç ihlali | Değişiklikleri geri al, akışı takip et: branch → push → PR |
Lokal sunucuyu durdurmak için terminalde ctrl c
tuşlarına bas. Yeniden başlatmak için yine duty livereload
kullan.
1️⃣4️⃣ Örnek Tam Akış (Kısa Özet)
# İlk kez:
git clone git@github.com:yuceltoluyag/yuceltoluyag.github.io.git
cd yuceltoluyag.github.io
git checkout -b arkadas-landing-duzenleme
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
duty update
code .
duty livereload # Lokal URL'de değişiklikleri gör
# Çalış, düzenle, sonra:
git add .
git commit -S -m "docs: README'ye katkı akışı eklendi"
git push -u origin arkadas-landing-duzenleme
# GitHub'da: Compare & pull request → Açıklamayı yaz → PR gönder
Sonraki oturumlarda:
cd yuceltoluyag.github.io
source venv/bin/activate
duty update
code .
duty livereload
# Yeni iş için:
git checkout main && git pull origin main
git checkout -b yeni-gorev
# değiştir → commit → push → PR
🎯 Sonuç
Artık “GitHub’ta bir projeye nasıl commit atılır?” sorusunun cevabını sadece öğrenmekle kalmadın; doğru akış olan branch üzerinde çalış + PR ile gönder sürecini, ayrıca projeyi lokalde ayağa kaldırma adımlarını da biliyorsun. Bu yaklaşım:
- Ana branch’i temiz ve stabil tutar,
- İnceleme (code review) sürecini mümkün kılar,
- Ekip içi karışıklıkları engeller,
- Değişikliklerini güvenle test edip doğrulamanı sağlar.
Kısacası, profesyonel bir katılım için ihtiyaç duyduğun tüm yapı taşları bu rehberde. Şimdi sıra sende: Kendi branch’ini aç, lokalde çalıştır, açıklayıcı commit mesajları yaz ve her zaman PR ile gönder. 🚀
Fediverse Yorumları
Mastodon'da Görüntüle