2012-03-20 19 views
18

Bir dosyayı izleyerek, daha sonra görmezden gelerek ve sonra onu sildiğimde git repo'yu topladım. Sorun şu ki, dosyanın uzak bir depoda (canlı site) mevcut olmasını istiyorum, ancak sadece izlemek istemiyorum.git track, ignore, delete, untrack

Artık benim ana dalım, tüm dosyaları, değişiklikleri gönderdiğimde uzaktaki şubede sileceğimi bildiğim depodan kaldırmaya çalışıyor ... Sadece onları devre dışı bırakmak istiyorum, ancak bunu yapamazlar. master'da silindi ve git rm -r --cached 'herhangi bir dosyayla eşleşmedi' diyor.

Bu silinen dosyaları uzak depodan kaldırmadan nasıl kaldırabilirim? Depodaki dosyaları silmek için

cevap

30

Sadece bir dosyayı izlemek istemezsiniz, ancak dosyayı uzak depoda (çıplak olmayan) saklamak istiyorsunuz.

Bu git komutunu kullanın. Bunu yaptıktan sonra, gitme işlemini olası değişiklikler için dosyayı denetlemeyi durdurur. Herhangi bir zamanda

git update-index --assume-unchanged <filename> 

, uzaktan depoyu etkilemez --no-varsayalım-unchaged bayrağı

git update-index --no-assume-unchanged <filename> 

Bu komut ayarlayarak tekrar izleyebilir. Daha fazla bilgi için

: http://kar-git.blogspot.in/2012/11/how-to-set-git-to-ignore-few-files-like.html

+1

Hei çalışıyor. –

+1

@ Ajith'i göz ardı etmenin nasıl farklı olduğunu açıklayabilir misiniz? GIT, zaten izlenmiş olan bir dosyayı göz ardı etmeyecektir. Detaylı bilgi için cevapta verilen bağlantıya bakınız. –

4

git rm kullanılır.

Onları izlemeyi durdurmak için, silindikten sonra bunları depo kökünün .gitignore dosyasına ekleyebilirsiniz.

+3

Ben zaten bunu gitignoring tarafından izlenen bir dosya izleme durduramaz sanmıyorum. Herkes onaylayabilir mi? –

+0

Onaylandı. dk karakter sınırı! – heinrich5991

+0

Ancak dosyayı kaldırmak, izlemeyi durdurmuyor değil mi? –

0

Git rm içeren bir dosyayı izlemediyseniz bile, bu dosyanın önceki bir sürümünü, örn. Yerel repo olarak

: git rm foo git uzak depo olarak -M 'kaldırıldı foo' git push kökenli asıl

taahhüt:

Sonra
git pull origin master // foo will be removed 
git checkout abcd1234 -- foo // checkout foo from commit abcd1234 (foo is staged) 
git reset HEAD // unstage foo 
git status 

# On branch master 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  foo 

untrack için .gitignore eklemek