Git ve GitHub Başlangıç Rehberi: Temel Komutlar

Git ve GitHub Başlangıç Rehberi: Temel Komutlar

Git ve GitHub, modern yazılım geliştirmenin vazgeçilmez iki aracıdır. Git, Linus Torvalds tarafından 2005 yılında Linux çekirdeği geliştirmesi için yazılmış, dağıtık bir versiyon kontrol sistemidir; GitHub ise Git depolarını bulutta barındıran ve ekip çalışmasını kolaylaştıran bir platformdur. Bu rehberde sıfırdan başlayarak günlük işlerinizde kullanacağınız temel komutları gerçek örneklerle öğreneceksiniz.

Git ve GitHub Arasındaki Fark

Yeni başlayanların en sık karıştırdığı konu budur. Git bilgisayarınızda çalışan bir komut satırı aracıdır; internet bağlantısı olmadan da commit alabilir, dal oluşturabilir, geçmişi inceleyebilirsiniz. GitHub ise bu yerel depoları paylaşmak, yedeklemek ve başkalarıyla birlikte çalışmak için kullanılan bir web servisidir. GitLab ve Bitbucket gibi alternatifleri de vardır; hepsi altta aynı Git'i kullanır.

Git'i git-scm.com adresinden indirebilirsiniz. Kurulumdan sonra ilk işiniz kimliğinizi tanıtmak olmalı:

git config --global user.name "Adınız Soyadınız"
git config --global user.email "eposta@ornek.com"

Bu bilgiler her commit'in kim tarafından yapıldığını kaydetmek için kullanılır.

İlk Depo: init, add ve commit

Bir proje klasörünü Git deposuna dönüştürmek tek komutla yapılır:

mkdir ilk-projem
cd ilk-projem
git init

git init komutu klasörün içinde gizli bir .git dizini oluşturur; tüm geçmiş burada saklanır. Şimdi bir dosya oluşturup takip etmeye başlayalım:

echo "# İlk Projem" > README.md
git add README.md
git commit -m "İlk commit: README eklendi"

Buradaki akış Git'in üç aşamalı modelini gösterir:

  • Çalışma dizini: Dosyaları düzenlediğiniz yer.
  • Staging alanı: git add ile commit'e girecek değişiklikleri seçtiğiniz ara katman.
  • Depo: git commit ile değişikliklerin kalıcı olarak kaydedildiği yer.
  • Tüm değişiklikleri tek seferde eklemek için git add . kullanabilirsiniz. Durumu kontrol etmek için git status, geçmişi görmek için git log --oneline en sık kullanacağınız komutlardır.

    GitHub'a Gönderme: remote ve push

    GitHub'da yeni bir depo oluşturduktan sonra yerel deponuzu ona bağlamanız gerekir:

    git remote add origin https://github.com/kullanici/ilk-projem.git
    git branch -M main
    git push -u origin main
    

    Burada origin, uzak deponun varsayılan takma adıdır. -u parametresi yerel main dalını uzaktaki main ile eşleştirir; böylece sonraki gönderimlerde sadece git push yazmanız yeterli olur.

    Başkasının (veya kendi) deposunu indirmek içinse clone kullanılır:

    git clone https://github.com/kullanici/ilk-projem.git
    

    Güncellemeleri Alma: pull ve fetch

    Ekip arkadaşınız depoya yeni commit'ler gönderdiyse bunları almanın iki yolu vardır:

    git fetch origin   # değişiklikleri indirir ama uygulamaz
    git pull origin main   # indirir ve mevcut dala birleştirir
    

    İpucu: git pull aslında git fetch + git merge komutlarının kısayoludur. Ne geldiğini önce görmek istiyorsanız fetch sonrası git log origin/main ile inceleme yapabilirsiniz.

    Dallar ile Çalışmak: branch ve merge

    Dallar (branch), ana kodu bozmadan yeni özellikler geliştirmenizi sağlar. Yeni bir dal oluşturup ona geçmek için:

    git branch yeni-ozellik
    git checkout yeni-ozellik
    

    Modern Git'te bu iki adım tek komutla yapılır: git checkout -b yeni-ozellik veya Git 2.23 ve sonrasında git switch -c yeni-ozellik. Dalda çalışmanızı bitirip commit aldıktan sonra ana dala dönüp birleştirirsiniz:

    git switch main
    git merge yeni-ozellik
    git branch -d yeni-ozellik   # işi biten dalı sil
    

    Aynı dosyanın aynı satırları iki dalda farklı şekilde değiştirildiyse Git bir çakışma (merge conflict) bildirir. Bu durumda çakışan dosyaları açıp <<<<<<<, ======= ve >>>>>>> işaretleri arasındaki bölümleri elle düzenlemeniz, ardından git add ve git commit yapmanız gerekir.

    .gitignore: Neyi Takip Etmemeli?

    Her dosya depoya girmemelidir. Bağımlılık klasörleri, derleme çıktıları ve gizli anahtarlar .gitignore dosyasıyla dışarıda tutulur. Proje kökünde .gitignore adında bir dosya oluşturun:

    node_modules/
    vendor/
    .env
    *.log
    dist/
    .DS_Store
    

    • node_modules/ gibi klasörler yeniden üretilebilir olduğundan depoda yer kaplamamalıdır.
    • .env dosyaları API anahtarı ve parola içerdiği için asla GitHub'a gönderilmemelidir.
    • *.log gibi joker karakterli kurallar bir uzantının tamamını kapsar.
    • Hazır şablonlar için GitHub'ın gitignore deposuna bakabilirsiniz.

      İyi Bir README Yazmak

      README.md, deponuzun vitrini ve GitHub'da otomatik olarak gösterilen ilk dosyadır. Markdown formatında yazılır ve en azından şunları içermelidir:

    • Projenin ne yaptığına dair bir-iki cümlelik açıklama
    • Kurulum adımları (git clone, bağımlılık yükleme komutları)
    • Basit bir kullanım örneği
    • Lisans bilgisi
    • İyi bir README, projenize bakan birinin kodu okumadan ne işe yaradığını anlamasını sağlar.

      Sık Kullanılan Komutların Özeti

      Günlük akışınız çoğunlukla şu döngüden oluşur:

    • git pull ile güncel kodu al.
    • git switch -c ozellik-dali ile yeni dal aç.
    • Kodu yaz, git add . ve git commit -m "açıklama" ile kaydet.
    • git push -u origin ozellik-dali ile GitHub'a gönder.
    • GitHub üzerinde pull request açarak değişikliği ana dala birleştir.
    • Hata yaptığınızda panik yapmayın: git restore dosya.txt çalışma dizinindeki değişikliği geri alır, git log ise hiçbir commit'in kaybolmadığını gösterir. Yanlışlıkla staging alanına eklediğiniz bir dosyayı git restore --staged dosya.txt ile geri çıkarabilir, son commit mesajını git commit --amend ile düzeltebilirsiniz. Yarım kalan işinizi dal değiştirmeden önce kenara koymak içinse git stash komutu vardır; git stash pop ile değişiklikleri geri getirirsiniz.

      İyi Commit Mesajları Yazmak

      Commit mesajları, projenizin geleceğe bırakılmış notlarıdır. Yaygın kabul gören kurallar şunlardır:

    • İlk satırı 50 karakter civarında, emir kipinde ve özet niteliğinde yazın: "Giriş formuna doğrulama ekle" gibi.
    • "Düzeltme", "güncelleme" gibi tek kelimelik mesajlardan kaçının; neyin değiştiğini söyleyin.
    • Gerekirse boş bir satırdan sonra ayrıntılı açıklama ekleyin.
    Daha derine inmek istediğinizde ücretsiz ve Türkçe çevirisi de bulunan Pro Git kitabı en iyi kaynaktır. Bu temel komutları birkaç küçük projede uyguladığınızda Git ve GitHub kısa sürede refleks haline gelecektir.

    Sıkça Sorulan Sorular

    Git ile GitHub arasındaki fark nedir?
    Git, bilgisayarınızda çalışan açık kaynak bir versiyon kontrol sistemidir; GitHub ise Git depolarını bulutta barındıran ve ekip çalışmasını kolaylaştıran bir platformdur. Git olmadan GitHub kullanılamaz, ancak Git tek başına internetsiz de çalışır.
    git pull ile git fetch arasındaki fark nedir?
    git fetch uzak depodaki değişiklikleri indirir ama çalışma dizininize uygulamaz; git pull ise fetch + merge yaparak değişiklikleri doğrudan mevcut dalınıza birleştirir.
    .gitignore dosyası ne işe yarar?
    .gitignore, Git tarafından takip edilmemesi gereken dosya ve klasörleri (node_modules, .env, derleme çıktıları gibi) listeler. Böylece gereksiz veya hassas dosyalar depoya eklenmez.
    WxDigitals
    WxDigitals

    WebTeknoloji.net editör ekibi; web geliştirme, SEO, hosting ve yapay zeka alanlarında üretilen içeriklerin araştırma, test ve yayın süreçlerini yürütür. Tüm incelemeler gerçek kullanım deneyimine, karşılaştırmalar ise resmi dokümantasyon ve güncel fiyatlandırma sayfalarına dayanır.

    Bu içeriği faydalı bulduysanız…

    Haftalık teknoloji & SEO rehberlerimize katılın, 38 maddelik Teknik SEO Kontrol Listesi PDF'ini hediye olarak hemen indirin.

    Yorumlar (0)

    Henüz yorum yapılmamış. İlk yorumu siz yapın!

    Yorum Yazın