Bu soru yeni başlayanların en sık sorduğu sorulardan biri olduğu için SSS olarak eklendi.
Projeye yanlışlıkla .env dosyasını ekleyip commit ettim. İçinde veritabanı şifresi var. Henüz push etmedim. Ne yapmalıyım? Ya push etmiş olsaydım?
Bu soru yeni başlayanların en sık sorduğu sorulardan biri olduğu için SSS olarak eklendi.
Projeye yanlışlıkla .env dosyasını ekleyip commit ettim. İçinde veritabanı şifresi var. Henüz push etmedim. Ne yapmalıyım? Ya push etmiş olsaydım?
Bu çok yaygın ve önemli bir hata. İki durum var:
Durum 1: Henüz push etmedin
git rm --cached .env # dosyayı depodan çıkar (diskte kalır)
echo ".env" >> .gitignore # bir daha eklenmesin
git add .gitignore
git commit --amend --no-edit # son commit'i düzelt
Dosya son commit’ten önceki bir commit’e girdiyse git rebase -i gerekir. O durumda daha ayrıntılı yardım isteyebilirsin.
Durum 2: Push ettiysen
Şifreyi ele geçirilmiş say ve hemen değiştir. Depo herkese açıksa botlar sızan anahtarları dakikalar içinde tarar. Geçmişten silmek bu yüzden tek başına yeterli değil.
git filter-repo aracı veya BFG Repo-Cleaner ile.git push --force gerekir; ekip arkadaşlarının depoyu yeniden klonlaması gerekir.Önlem: Proje başında .gitignore dosyasına .env ekle. Paylaşmak için değerleri boş bırakılmış bir .env.example dosyası koy.