Kod oluşturulurken otomatik olarak değiştirilen bir depoda bazı izlenen dosyalar var. Bunların izini sürmek istemiyorum, sadece değiştirilmiş olarak görünmelerini istemiyorum ve eklediğimde sahnelenmelerini istemiyorum.
Mümkün mü?
Kod oluşturulurken otomatik olarak değiştirilen bir depoda bazı izlenen dosyalar var. Bunların izini sürmek istemiyorum, sadece değiştirilmiş olarak görünmelerini istemiyorum ve eklediğimde sahnelenmelerini istemiyorum.
Mümkün mü?
Yanıtlar:
Elbette.
git update-index --assume-unchanged [<file> ...]
Geri almak ve tekrar izlemeye başlamak için:
git update-index --no-assume-unchanged [<file> ...]
Git will fail (gracefully) in case it needs to modify this file in the index e.g. when merging in a commit; thus, in case the assumed-untracked file is changed upstream, you will need to handle the situation manually.
--assume-unchangedKlonlama üzerine başvurmanın herhangi bir yolu var mı? Böylece tüm kullanıcılar dosyalara sahip olurlar, ancak diffs cinsinden yerel değişiklikleri görmezler.
git update-index --no-assume-unchanged $(git ls-files $(git rev-parse --show-toplevel))Bir git takma adı olarak ayarlanmış komutum var . Ne zaman şüphe duyduğumda bu maskaralıklardan bazıları bunu yapıyorum
Başka bir yaklaşım (Seth Robertson tarafından silinen bir cevaptan, ancak bunu yeniden diriltmeyi faydalı buldum) bir "izlenen" şablon dosyasını korumak, daha sonra yerel izlenmemiş sürümüne sahip olmak, örneğin: "config.sample.ini" veya " config.ini.template " tam bir örnek için bkz. https://gist.github.com/canton7/1423106 .
Dosya git vb. İçinde değiştirilirse endişe olmaz ve yerel izlenmemiş dosyalarda .gitignore (nihayet) kullanabilirsiniz.
Filtre komutunda git niteliklerini ve% f kullanan başka bir çözüm:
git config filter.orig.clean "cat %f.orig"
cp filename filename.orig
echo "filename filter=orig" >> .git/info/attributes
echo "filename.orig" >> .git/info/exclude