Tabii, zaman zaman bunu tam olarak yapıyorum
git update-index --assume-unchanged [<file> ...]
Geri almak ve tekrar izlemeye başlamak için (hangi dosyaların izlenmediğini unuttuysanız, bu soruya bakın ):
git update-index --no-assume-unchanged [<file> ...]
İlgili belgeler :
- [no-] varsay-değişmedi
Bu bayrak belirtildiğinde, yollar için kaydedilen nesne adları güncellenmez. Bunun yerine, bu seçenek yollar için "değişmediğini varsay" bitini ayarlar / kaldırır. "Değişmediğini varsay" biti açık olduğunda, kullanıcı dosyayı değiştirmeyeceğine söz verir ve Git'in çalışma ağacı dosyasının dizine kaydedilenle eşleştiğini varsaymasına izin verir. Çalışma ağacı dosyasını değiştirmek istiyorsanız, Git'e söylemek için bitin ayarını kaldırmanız gerekir. Bu, bazen çok yavaş lstat(2)
sistem çağrısı (örn. Cif'ler) olan bir dosya sisteminde büyük bir projeyle çalışırken yardımcı olur .
Git, dizinde bu dosyayı değiştirmeniz gerektiğinde başarısız olur (incelikle); bu nedenle, varsayılan izlenmemiş dosyanın yukarı yönde değiştirilmesi durumunda, durumu manuel olarak ele almanız gerekir.
Bu durumda zarif bir şekilde başarısız olunması, bir çekme işlemi yaptığınızda o dosyanın akışında herhangi bir değişiklik (yasal değişiklikler vb.) Varsa, şunu söyleyecektir:
$ git pull
…
From https://github.com/x/y
72a914a..106a261 master -> origin/master
Updating 72a914a..106a261
error: Your local changes to the following files would be overwritten by merge:
filename.ext
ve birleşmeyi reddeder.
Bu noktada, yerel değişikliklerinizi geri alarak bunun üstesinden gelebilirsiniz, işte bir yol:
$ git checkout filename.ext
daha sonra tekrar çekin ve yerel dosyanızı yeniden değiştirin veya ayarlayabilir –no-assume-unchanged
ve bu noktada normal saklama ve birleştirme vb. yapabilirsiniz.