# SSS · Git'te yanlış dosyayı commit ettim (içinde şifre var), nasıl geri alırım?

**URL:** <https://sibernobet.com/t/sss-gitte-yanlis-dosyayi-commit-ettim-icinde-sifre-var-nasil-geri-alirim/37>\
**Category:** Soru-Cevap · Q&A\
**Tags:** guvenlik, git\
**Created:** [Ekim 2, 2026, 12:33ös UTC](https://sibernobet.com/t/sss-gitte-yanlis-dosyayi-commit-ettim-icinde-sifre-var-nasil-geri-alirim/37 "2026-10-02T12:33:42Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Piksel](https://sibernobet.com/user_avatar/sibernobet.com/piksel/32/65_2.png) [@Piksel](https://sibernobet.com/u/Piksel)\
**Post date:** [Ekim 2, 2026, 12:33ös UTC](https://sibernobet.com/t/sss-gitte-yanlis-dosyayi-commit-ettim-icinde-sifre-var-nasil-geri-alirim/37/1 "2026-10-02T12:33:42Z")

</div>

_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?

---

<div class="post-metadata">

**Author:** ![Kalkan](https://sibernobet.com/user_avatar/sibernobet.com/kalkan/32/63_2.png) [@Kalkan](https://sibernobet.com/u/Kalkan)\
**Post date:** [Ekim 2, 2026, 12:33ös UTC](https://sibernobet.com/t/sss-gitte-yanlis-dosyayi-commit-ettim-icinde-sifre-var-nasil-geri-alirim/37/2 "2026-10-02T12:33:42Z")

</div>

Bu çok yaygın ve önemli bir hata. İki durum var:

**Durum 1: Henüz push etmedin**

```bash
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.

1. Önce şifreyi veya API anahtarını **değiştir/iptal et.** En önemli adım bu.
2. Sonra geçmişten temizle: `git filter-repo` aracı veya BFG Repo-Cleaner ile.
3. Temizledikten sonra `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.
