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:
git add ile commit'e girecek değişiklikleri seçtiğiniz ara katman.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 pullaslındagit fetch+git mergekomutlarının kısayoludur. Ne geldiğini önce görmek istiyorsanızfetchsonrasıgit log origin/mainile 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..envdosyaları API anahtarı ve parola içerdiği için asla GitHub'a gönderilmemelidir.*.loggibi joker karakterli kurallar bir uzantının tamamını kapsar.- 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
git pullile güncel kodu al.git switch -c ozellik-daliile yeni dal aç.- Kodu yaz,
git add .vegit commit -m "açıklama"ile kaydet. git push -u origin ozellik-daliile GitHub'a gönder.- GitHub üzerinde pull request açarak değişikliği ana dala birleştir.
- İ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.
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:
İ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:
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:
Yorumlar (0)
Henüz yorum yapılmamış. İlk yorumu siz yapın!
Yorum Yazın