İçeriğe geç
Yeni yazı çıkınca e-posta · 4.812 abone 190 rehber · 78 ipucu · 58 komut RSS GitHub LinkedIn İletişim
Ara Ctrl K Bültene katıl
Tüm arşiv · 190 rehber →
Tüm araçlar · 75 üreteç →
Altyapı Otomasyonu

Sürüm kontrolü nedir? Sistem yöneticisi için Git mantığı

İşleme, dal, birleştirme ve uzak depo kavramları; yapılandırma dosyalarını sürümlemenin operasyona ne kazandırdığı.

Mustafa Çelik 25 Ağustos 2026 · 5 dk okuma

Sürüm kontrolü uzun süre yalnızca yazılım geliştiricilerin işi sayıldı. Altyapı kod olarak tanımlanmaya başladığında bu değişti: bugün bir sistem yöneticisinin yapılandırma dosyaları, betikleri ve altyapı tanımları da aynı disiplini gerektiriyor.

Neyi çözer

Yapılandırma dosyalarını .bak, .eski, .calisan-hali gibi kopyalarla saklamak yaygın bir alışkanlıktır ve üç soruyu yanıtlayamaz: bu satırı kim ekledi, ne zaman eklendi, neden eklendi?

Sürüm kontrolü tam olarak bunları yanıtlar. Her değişiklik bir yazara, bir zamana ve bir açıklamaya bağlanır. Geriye dönmek dosya kopyalamak değil, tek bir komuttur.

Üçüncüsü — “neden” — en değerlisidir. Bir yıl sonra kimsenin hatırlamadığı bir istisna kuralının gerekçesi, o değişikliğin açıklamasında durur.

İşleme: değişikliğin birimi

Bir işleme (commit), bir anlık görüntüdür: o an dosyaların hâli, kim yaptı, ne zaman ve neden.

İyi bir işleme tek bir mantıksal değişikliği kapsar. “Günlük ayarlarını düzelt” ile “yeni sunucu ekle” ayrı işlemeler olmalıdır — çünkü biri geri alınmak istendiğinde diğerini de götürmemesi gerekir.

Açıklama alanı burada asıl değerdir. “Düzeltme” yazan bir açıklama hiçbir şey anlatmaz; “DNS iletici zaman aşımı 3 saniyeye indirildi, ISS sunucusu yavaş yanıt veriyordu” cümlesi bir yıl sonra da işe yarar.

Dal ve birleştirme

Dal (branch), ana hattan ayrılıp bağımsız çalışmanın yoludur. Riskli bir değişikliği denerken ana hattı bozmazsınız.

İş bittiğinde dal ana hatta birleştirilir. Aynı satır iki tarafta da değiştiyse bir çakışma çıkar ve elle çözülür.

Pratik kural: dallar kısa ömürlü olmalıdır. Haftalarca ayrı duran bir dal, birleştirme sırasında büyük çakışmalar üretir. Sürekli tümleştirmenin fikri de budur; ayrıntısı CI/CD nedir yazısında.

Uzak depo

Yerel depo sizin makinenizdedir. Uzak depo ortak sunucudadır ve ekibin buluştuğu yerdir.

push yerel işlemeleri uzağa gönderir, pull uzaktakileri yerele alır. Bu, aynı zamanda bir yedektir: makineniz gitse bile geçmiş uzakta durur.

Ama uzak depo tek başına yedek sayılmaz — silinen bir depo ya da ele geçirilen bir hesap her şeyi götürebilir. Kritik depolarda ayrıca yedekleme gerekir; kuralın modern hâli 3-2-1 kuralı rehberinde.

İnceleme kültürü

Değişikliklerin ana hatta girmeden önce bir başkası tarafından okunması, sürüm kontrolünün en değerli yan ürünüdür.

Bu yalnızca hata yakalamaz; bilgiyi yayar. Bir yapılandırma değişikliğini iki kişi görmüşse, o sistemi bilen kişi sayısı da ikiye çıkmıştır.

Altyapı tarafında inceleme özellikle değerlidir, çünkü plan çıktısı — neyin değişeceğinin listesi — uygulanmadan önce okunabilir. Yaklaşımın tamamı kod olarak altyapıya nereden başlanır rehberinde.

Depoya sır girmez

En sık ve en pahalı hata budur: bir parola ya da anahtarın işlemeye dahil edilmesi.

Sorun, sonradan silmenin yetmemesidir. Sürüm kontrolünün amacı geçmişi saklamaktır; sır eski işlemelerde durmaya devam eder ve depoyu klonlayan herkes ona ulaşır.

Bu yüzden iki önlem birlikte uygulanır: .gitignore ile sır dosyalarını dışarıda tutmak, ve otomatik bir tarayıcıyla kaçakları yakalamak. İnsan gözü bunu güvenilir biçimde yapamaz.

Sır depoya girdiyse tek doğru yanıt onu iptal etmek ve yenisini üretmektir. Geçmişi temizlemek ikincil bir adımdır.

CI tarafındaki karşılığı boru hattı güvenliği rehberinde.

Sistem yöneticisi için pratik kullanım

Sürüm kontrolü yalnızca uygulama kodu için değildir. Şu dosyalar da oraya aittir:

PowerShell ve kabuk betikleri, sunucu yapılandırma dosyaları, altyapı tanımları, izleme kuralları, güvenlik duvarı kural setleri ve yordam belgeleri.

Kazanç somuttur: bir değişiklik sonrası bir şey bozulduğunda “dün ne değişti” sorusu saniyeler içinde yanıtlanır. Kural setinin okunabilir tutulması güvenlik duvarı kural seti rehberinde ele alınıyor.

Grup ilkeleri gibi doğrudan metin olmayan yapılandırmalar da dışa aktarılıp sürümlenebilir; GPO yedek otomasyonu rehberi bunu anlatıyor.

İki dosyayı karşılaştırmak

Günlük işte en çok kullanılan işlem, iki sürüm arasındaki farkı görmektir. Sürüm kontrolü bunu yerleşik olarak yapar.

Depo dışındaki hızlı karşılaştırmalar için — bir sunucudan alınan iki yapılandırma çıktısı gibi — metin farkı aracını kullanabilirsiniz.

Kısaca

Sürüm kontrolü, “kim, ne zaman, neden” sorularını yanıtlayan bir defterdir. İşleme değişikliğin birimidir, dal bağımsız çalışmanın yolu, uzak depo ekibin buluşma noktasıdır.

Sistem yöneticisi için asıl kazanç geçmişe dönebilmek değil, değişikliği görünür kılmaktır. Bir sorunun nedenini aramak, yapılandırmanın geçmişi tutuluyorsa dakikalar; tutulmuyorsa günler alır.

Mustafa Çelik

Altyapı ve Operasyon Müdürü, İstanbul. 25 yıldır BT altyapısı, sistem yönetimi ve ağ altyapısıyla uğraşıyor; öğrendiklerini bu blogda üretim ortamında denenmiş rehberlere çeviriyor.

Hakkımda

Bu rehber işinize yaradıysa, sonrakini kaçırmayın.

Yeni yazı yayınlandığında tek e-posta. Takvim yok, dilediğiniz an çıkabilirsiniz.

Bülten sağlayıcısı henüz bağlanmadı. Bağlanana kadar e-posta ile yazabilirsiniz ya da RSS akışını takip edebilirsiniz.