Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
29 yazı bulundu #devops
Git ve GitHub Nedir? Sürüm Kontrolüne Giriş
DevOps SERİ 01

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.

6 Kas 2026 8 dk 3
Git Kurulumu ve İlk Ayarlar: git config ile Doğru Başlangıç
DevOps SERİ 02

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.

6 Kas 2026 9 dk 2
İlk Git Repo'su: git init, Staging Area ve İlk Commit
DevOps SERİ 03

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

6 Kas 2026 9 dk 2
Git Commit'in İçi: Snapshot, Object'ler ve Hash
DevOps SERİ 04

Git Commit'in İçi: Snapshot, Object'ler ve Hash

Commit'in diff değil snapshot olduğunu git cat-file ile commit, tree ve blob object'lerini açarak görüyor, hash'i shasum ile elle hesaplıyor, değişmeyen dosyanın neden ikinci kez saklanmadığını buluyoruz. İyi bir commit mesajının kurallarını ve git commit --amend'in neden yeni bir commit ürettiğini öğreniyoruz.

6 Kas 2026 10 dk 3
Git ile Dosya Takibi: .gitignore, git rm --cached ve git mv
DevOps SERİ 05

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.

6 Kas 2026 9 dk 2
Git Geçmişine Bakmak: git log, git show, git blame ve Alias'lar
DevOps SERİ 06

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.

6 Kas 2026 12 dk 3
Git diff ile Değişiklikleri Karşılaştırmak
DevOps SERİ 07

Git diff ile Değişiklikleri Karşılaştırmak

git diff'in working tree, index ve HEAD arasında hangi karşılaştırmayı yaptığını, diff çıktısının nasıl okunduğunu, --stat, --name-only ve --word-diff gibi özet görünümleri, commit'ler arası diff'i ve iki nokta ile üç nokta (--merge-base) farkını gerçek çıktılarla görüyoruz.

6 Kas 2026 9 dk 2
Git Branch: Hareketli Bir Pointer, HEAD ve git switch
DevOps SERİ 08

Git Branch: Hareketli Bir Pointer, HEAD ve git switch

Branch'in içinde tek bir commit hash'i taşıyan 41 byte'lık bir dosya olduğunu, HEAD'in nasıl çalıştığını, git branch ile listeleme, yeniden adlandırma ve silmeyi, git switch ve switch -c ile gezinmeyi, detached HEAD'e girip çıkmayı ve git checkout'un eski kullanımını gerçek çıktılarla görüyoruz.

6 Kas 2026 9 dk 2
Git Merge: Fast-forward, Three-way Merge ve Merge Commit
DevOps SERİ 09

Git Merge: Fast-forward, Three-way Merge ve Merge Commit

Fast-forward ile three-way merge arasındaki farkı, ortak atanın (git merge-base) rolünü, iki parent'lı merge commit'in içini, --no-ff ve --ff-only seçeneklerini, Git 2.34'ten beri varsayılan olan ort stratejisini ve merge sonrası branch temizliğini gerçek çıktılarla görüyoruz.

6 Kas 2026 8 dk 2
Git Conflict Çözmek: Marker'lar, merge --abort ve zdiff3
DevOps SERİ 10

Git Conflict Çözmek: Marker'lar, merge --abort ve zdiff3

Conflict'in neden çıktığını, marker'ların nasıl okunduğunu, git status, git log --merge ve git ls-files -u ile durumu görmeyi, adım adım çözümü, git merge --abort'u, merge.conflictStyle zdiff3'ü, --ours/--theirs, mergetool ve rerere'yi gerçek çıktılarla görüyoruz; Git 2.56'daki git add --resolved'a da kısaca değiniyoruz.

6 Kas 2026 9 dk 2
Git Remote ve Clone: origin, fetch, push ve Upstream
DevOps SERİ 11

Git Remote ve Clone: origin, fetch, push ve Upstream

Remote'un ne olduğunu, GitHub yerine yerel bir bare repo ile git remote add, push -u ve upstream ayarını, origin/main gibi remote-tracking branch'leri, git clone'un yaptığı işleri, fetch ile merge'ün ayrımını, yeni bir branch'i paylaşmayı, git remote show/rename'i ve reddedilen push'u gerçek çıktılarla görüyoruz.

6 Kas 2026 9 dk 2
Git Pull'u Doğru Anlamak: fetch, merge, rebase ve Divergent Branches
DevOps SERİ 12

Git Pull'u Doğru Anlamak: fetch, merge, rebase ve Divergent Branches

git pull'un fetch ile merge ya da rebase'den oluştuğunu, Git 2.33.1'den beri ayrışmış branch'lerde çıkan "divergent branches" hatasını, --no-rebase, --rebase ve --ff-only seçeneklerini, pull.rebase ile pull.ff arasındaki tercihi, Git 2.51'deki pull.autostash'i ve fetch --prune'u gerçek çıktılarla görüyoruz.

6 Kas 2026 9 dk 2
Blog Haritası