1. Görmezden gelmek ve geçmişten çıkarmak farklıdır

.gitignore, Git'in yeni ve takip edilmeyen dosyaları nasıl ele alacağını belirler. Dosya daha önce takibe alınmışsa sonradan eklenen bir kural onu otomatik olarak geçmişten çıkarmaz. Bu ayrım, .env dosyasını yanlışlıkla depoya ekledikten sonra yalnızca ignore satırıyla düzeltmeye çalışan projelerde sık gözden kaçar.

İlk kontrol git status ile çalışma ağacını, git ls-files ile takip edilen dosyaları görmek olmalıdır. Deponun hangi dosyaları içerdiğini isimlerden değerlendir; terminale gizli dosyanın içeriğini bastırma. Anahtarın paylaşılmış olup olmadığını araştırırken yeni bir ifşa oluşturma.

2. Yeni projede güvenli başlangıç

Ortam dosyalarını ve yerel üretilen çıktıları baştan dışarıda tut. Paylaşılacak örnek yapılandırma yalnızca değişken isimlerini ve açıklamalarını içersin; gerçek değer taşımasın. .env.example dosyası yeni geliştiriciye hangi ayarların gerektiğini anlatır, üretim parolasını taşımak için kullanılmaz.

Aşağıdaki kurallar bir başlangıç örneğidir. Her projenin çıktı ve bağımlılık yönetimi farklıdır; lock dosyalarını, gerekli derleme varlıklarını veya dağıtım dosyalarını düşünmeden dışarıda bırakma. Ignore listesi proje sözleşmesinin bir parçasıdır.

gitignore
.env
.env.*
!.env.example
node_modules/
vendor/
*.log
.DS_Store

3. Takip edilen dosyayı yerelde tutarak çıkar

Bir ortam dosyasını artık takip etmek istemiyorsan git rm --cached yol komutunu kullanabilirsin. Bu, dosyayı çalışma dizininden silmeden Git indeksinden çıkarır. Sonraki commit değişikliği kaydeder; eski commitlerdeki içeriği silmez.

Komutu çalıştırmadan önce doğru dosyayı seç ve mevcut değişiklikleri gözden geçir. Bir takım projesinde etkisini ekip işleyişine göre değerlendir. Özel bir dosyayı kaynak kontrolünden çıkarmak, sunucunun onu hâlâ doğru yerde okuyabildiğini kontrol etme gereğini ortadan kaldırmaz.

Shell
git ls-files -- .env
git rm --cached -- .env
git status --short
# Sonucu incele; ardından yalnızca ilgili değişikliği commit et.

4. Paylaşılmış bir anahtar için öncelik iptaldir

Bir anahtar herkese açık depoya gittiyse onu sızmış kabul etmek gerekir. İlk iş ilgili hizmette anahtarı iptal etmek ve yenisini güvenli şekilde yerleştirmektir. Eski satırı silmek veya depoyu özel yapmak, daha önce kopyalanmadığını kanıtlamaz.

Geçmiş temizliği gerekiyorsa bunun dallar, forklar ve ekipteki klonlar üzerindeki etkisini planla. Zorla push, paylaşılan geçmişi değiştirebilir; bu yüzden yalnızca bir dosyayı kaldırmak gibi ele alınmamalıdır. Anahtar iptaliyle depo temizliğini iki ayrı işlem olarak takip et.

5. Yayın öncesi bir dakikalık kontrol

Committen önce dosya listesini ve farkı incele. Yapılandırma, günlük, ekran görüntüsü ve test verisi dosyaları sır taşıyabilir. Büyük bir “git add .” işlemi yerine ilgili yolları seçmek, ilgisiz dosyaların istemeden paylaşılmasını azaltır.

Bu kontroller tek başına tüm sır sızıntılarını engellemez. Depo ve hizmet tarafında secret scanning, dar yetkili anahtarlar ve süreli erişim gibi katmanlar da değerlidir. Temel kural ise basittir: bir sır için kaynak deposunu taşıma kanalı olarak kullanma.

Kaynaklar ve kontrol notu

Bu rehber yapay zekâ desteğiyle hazırlanmış özgün bir editoryal içeriktir. Kaynak kontrolü: 30 Eylül 2026. Örnekleri kendi proje koşullarına uyarlayarak doğrula.

Bir hata fark ettiysen editörlüğe bildir; düzeltmeleri güncelleme tarihiyle işleriz.