Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Git ve GitHub Nedir? Sürüm Kontrolüne Giriş
Sürüm kontrolü neden var, merkezi ve dağıtık araçlar arasındaki fark ne, Git ile GitHub neden aynı şey değil? Sunucusu silinen bir repo'da geçmişe bakıp commit atarak dağıtık çalışmayı deniyor, Git'in kısa tarihçesini, DevOps'taki yerini ve serinin kurgusunu görüyoruz.
Git Kurulumu ve İlk Ayarlar: git config ile Doğru Başlangıç
Git'i macOS, Windows ve Linux'a kurup sürümünü kontrol ediyor, system/global/local ayar katmanlarını, user.name ve user.email'i, init.defaultBranch main'in neden gerektiğini, core.editor'ü ve core.autocrlf'i görüyoruz. git config list/get/set/unset (2.46+) alt komutlarını eski --get biçimiyle karşılaştırıyoruz.
İlk Git Repo'su: git init, Staging Area ve İlk Commit
bookstore repo'sunu git init ile sıfırdan kuruyor, .git klasörüne ilk kez bakıyoruz. Working tree, staging area ve repository üçlüsünü git status, git add ve git commit ile adım adım görüyor, status -s'in iki sütununu ve MM durumunun neden commit'e ilk hâli taşıdığını öğreniyoruz.
Git ile Dosya Takibi: .gitignore, git rm --cached ve git mv
.gitignore pattern'lerini, ! ile istisnayı ve git check-ignore -v ile hangi kuralın devrede olduğunu görüyoruz. Zaten commit'lenmiş bir .env'in neden .gitignore'a rağmen takip edildiğini ve git rm --cached ile nasıl çıkarıldığını, global excludes'u, git mv'yi ve .gitattributes ile satır sonlarını ele alıyoruz.
Git Geçmişine Bakmak: git log, git show, git blame ve Alias'lar
git log'un --oneline, --graph, --stat, -p, --format, --author, --since, --grep ve --follow seçenekleriyle geçmişte geziniyor, -S ile -G arasındaki farkı fiyatı değişen bir satırla görüyoruz. git show ile tek commit'e ve eski bir dosya hâline bakıyor, git blame -L ile satırların kaynağını buluyor, alias'larla uzun komutları kısaltıyoruz.