2009-12-07 29 views
7

2 hafta önce, şifremi içeren uygulamamın yapılandırmasını onayladım, çok kullanışlı değil. Dosyayı taahhüt geçmişinden nasıl kaldırabilirim ve yeniden işlenmediğinden emin olabilir miyim?Git - yapılandırma dosyasını kaldırın ve dışarıda bırakın

Parolamlarımı içerdiğinden dosyayı tüm işlem ağacından kaldırmak istiyorum.

+0

? 2 hafta önce gerçekleşen tek bir taahhüdü geri almak ister misiniz? – BastiBen

cevap

18

Sen

git rm myConfigFile 
echo myConfigFile > .gitignore 
git add .gitignore 
git commit -m "from now on, no more myConfigFile" 

(Zaten bir uzak sitelerinden birine repo itti özellikle tehlikeli) diğer uç yaklaşım bütünüyle bahsedilen repo tarihinin o dosyayı kaldırmak olacağını olabilir :

git filter-branch --index-filter 'git update-index --remove myConfigFile' HEAD 

(özenle kullanmak ve bir yedek birinci ile karşı)

How do I remove sensitive files from git’s history sorusu bu hassas konu hakkında daha fazla.

bu süreçte sorunlar iki yönlüdür: senin repo zaten klonlanmış olması ise

  1. , gizli bilgilerin her repo gerçekten "gitti" olacağını garanti olamaz.
  2. Diğerleri, son değişikliklerinizi bundan sonra geri çekmeyi denediğinde, değişikliklerin hızlı bir şekilde uygulanmayacağı için uygulanamadığını belirten bir mesaj alırlar.
    Bunu düzeltmek için, varolan depolarını silmeleri ve yeniden klonlamaları ya da git-rebase manpage'daki "RECOVERING FROM UPSTREAM REBASE" altındaki talimatları izlemeleri gerekir. "Sessizce" ... değiştirilir veya silinir hem durumda
    , gizli bilgilerin olmayacak
+0

. Altın, teşekkürler! . – IvRRimUm

1
cp my-config config.tmp 
git rm my-config 
git commit -m 'removed config' 
mv config.tmp my-config 
echo my-config >> .gitignore 
git add .gitignore 
git commit -m 'ignore config' 
tam olarak yapmaya çalıştığımız şey
İlgili konular