GitHub’ta Bir Projeye Nasıl Commit Atılır? – Adım Adım Rehber 🚀

Git (7/7)
1108 kelime
5 dakika
Seviye 9.88

“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:

Önemli

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:

Bash
git --version

Örnek çıktı:

Text Only
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

Bash
ssh -T git@github.com

Başarılıysa şöyle bir mesaj gelir:

Text Only
Hi yuceltoluyag! You've successfully authenticated, but GitHub does not provide shell access.

GPG Anahtarını Kontrol Et

Bash
git config --global user.signingkey

Anahtar görünmüyorsa GPG yazımı takip ederek ayarla.


3️⃣ Repoyu Klonlama

Örnek repo: yuceltoluyag.github.io GitHub Repo Klonlama

Bash
git clone git@github.com:yuceltoluyag/yuceltoluyag.github.io.git
cd yuceltoluyag.github.io
İpucu

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ç:

Bash
git checkout -b benim-branchim

Örnek:

Bash
git checkout -b arkadas-landing-duzenleme
İpucu

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:

Bash
# 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.

Uyarı

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:

Markdown
Bu satır, branch üzerinden yapılan commit örneğidir. 🚀

VS Code’da açmak için:

Bash
code .

Dosyayı düzenleyip kaydetmeyi unutma. Lokal sunucu açıksa (livereload), sayfa otomatik yenilenecektir.


7️⃣ Değişiklikleri Kontrol Et

Neler değişmiş?

Bash
git status

Satır bazında farkı görmek için:

Bash
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:

Bash
git add .
# veya tek dosya için: git add README.md

İmzalı commit at:

Bash
git commit -S -m "README.md: örnek satır eklendi"
İpucu

İ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:

Bash
git push -u origin benim-branchim

Örnek:

Bash
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.

Önemli

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.

Bilgi

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:

Bash
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ış:

Bash
# 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/activatepip install -r requirements.txtduty 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
İpucu

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)

Bash
# İ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:

Bash
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