Yeni makine kurulumu, çoğu geliştirici için sessiz bir veri kaybı hikâyesidir: beş yılda biriktirilen alias'lar, editör ayarları, terminal renkleri ve kabuk işlevleri — hiçbiri yedekte. Dotfiles yönetimi bu birikimi Git deposuna çevirir; ayarlarınız sürümlenir, geri alınır ve her yeni makineye dakikalar içinde taşınır. Bu yazı, yaygın deseni, sır güvenliğini ve hangi dosyaların depoya gireceğini topluyor.

Depo + sembolik bağ + kurulum betiği

Yaygın desen üç parçalıdır: yapılandırma dosyaları bir depoda yaşar, gerçek yerlerine sembolik bağla bağlanır, kurulum betiği bu bağları kurar:

# 1. Dotfiles deposunu ac
git clone [email protected]:kullanici/dotfiles.git ~/dotfiles

# 2. Yonetilecek dosyalari depoya tasi (ornek: .zshrc)
mv ~/.zshrc ~/dotfiles/zshrc

# 3. Sembolik baglari kuran betik (stow ya da elle)
ln -sf ~/dotfiles/zshrc ~/.zshrc

Sembolik bağın güzelliği, düzenlemenin hâlâ tek yerde olmasıdır: ~/.zshrc'yi değiştirdiğinizde aslında depodaki dosyayı değiştirirsiniz; git diff ve git commit her zamanki gibi çalışır. GNU Stow gibi araçlar bağ ağacını otomatik kurar; elle kurulum da tek betikte toplanabilir. Kurulum betiğinin idempotent yazılması önemli: aynı makinede iki kez çalıştığında hata vermemeli, yalnız eksik bağları kurmalı. Yeni makinede ilk yarım saat, "ne kurmuştum?" sorusunu arşivden aramakla değil, tek komutla geçilmelidir; bu yarım saat, yönetimin değildir ve her kurulumda yeniden ödenir.

Sır saklamaya özen gösterin

Dotfiles deposunun klasik kazası, API anahtarı ve şifrenin yanlışlıkla commit edilmesidir. Depoya girmesi gereken ayar ile girmemesi gereken sırrı ayırın: sırları ortam değişkeninden okuyun ya da ayrı, özel bir dosyada tutun ve .gitignore'a ekleyin:

# Depoya girmeyen sirlar ayri dosyada
# .gitignore: env.private
# zshrc son satiri:
[[ -f ~/.env.private ]] && source ~/.env.private

Bu ayırım, deponuzu herkese açık yapma seçeneğini de korur; açık depo, aynı düzeni binlerce geliştiriciyle paylaşmayı ve topluluk örneklerinden faydalanmayı kolaylaştırır. Yine de iki katman güvenlidir: sır içermeyen her şey depoda, sırlar ve makineye özel değerler dışarıda kalır. Geçmişe dönük bir uyarı: sızmış bir anahtar, depo geçmişinden silinse bile ele geçirilmiş sayılır; rotate etmek (değiştirmek) tek doğru yoldur.

Hangi dosyalar yönetilmeli

Başlangıç seti bellidir: .zshrc/.bashrc, .gitconfig, .vimrc ya da Neovim yapılandırması, .tmux.conf, alacritty/kitty terminallerinin ayar dosyaları. IDE'lerde ayarın dışa aktarılabilir senkronizasyon dosyaları da aynı depoya girebilir. Makineye özel istisnalar için dosyayı sürümlemeden yükleme örüntüsünü (if [ -f ... ]) kullanın; böylece iş bilgisayarı ile kişisel makine tek depoyu paylaşabilir. Depo büyüdükçe küçük bir belge de işe yarar: hangi dosya ne işe yarar, yeni makinede kurulum sırası nedir, hangileri makineye özgüdür — üç cümlelik bu not, bir yıl sonraki size zaman kazandırır.

Özet: dotfiles yönetimi tek seferlik bir göç değil, ayarlarınıza kod disiplini getirme pratiğidir. Bir akşam kurulan depo, her yeni makinede, her format sonrası, her yeni iş bilgisayarında faizini öder. Kaybolmayan ayar, kaybolmayan üretkenliktir: beş yıllık birikiminizi tek bir depoya sığdırıp her yerde çalıştırmak, "ortamımı bir daha kuramam" korkusunu sonsuza dek bitirir. Depo, ayarlarınızın hem yedeği hem arşivi hem de genelge halindeki kurulum kılavuzudur. Ayarlarınızın da bir sürümü olduğunu bilmek, üretim ortamı kadar geliştirme ortamınıza da güvenmenizi sağlar.