2014-11-10 6 views
16

Bir overrides.json eklemek istiyorum. Bu, geliştiricilerin bir yapılandırma nesnesinde yerel olarak değişiklik yapmalarına izin verir. Depoya varsayılan bir durumda eklenmesini istiyorum ancak gelecekteki değişikliklerin göz ardı edilmesini istiyorum.Bir git deposuna bir dosya ekleyin ancak üzerinde yapılacak değişiklikleri yoksayın

.gitignore, görmezden gelememden önce şubeden kaldırmamı zorlaştırıyor gibi görünüyor. git update-index hakkında biliyorum, ancak her geliştirici bunu elle yapmak zorunda kalacaktı. Açıklığa kavuşturmak için, dosyanın kaldırılmasını istemiyorum; Aslında dosyanın depoya eklenmesini istiyorum ancak bundan sonra izlenmiyor.

GET eksik bir dosya için istekleri, tarayıcının javascript konsolunda çirkin hata iletileri atar çünkü onu kaldıramıyorum.

+1

Dosyayı yalnızca okuyamadınız ve sonra da taahhüt edemiyor musunuz? – saruftw

+0

Hayır, geliştiricilerin yerel olarak değiştirmesini istiyorum. Bu, dev tür özelliklerin etkinleştirilmesi, ancak bunları üretim yapılandırmasının dışında tutmak için olurdu. –

+0

[Git yerel yoldaki değişiklikleri izlenen dosyalara aldırmayın] (http://stackoverflow.com/questions/21756531/git-ignore-local-changes-to-tracked-files) – 1615903

cevap

2

Yoksaymayın ve repo'ya eklemeyin. Bunun yerine, eğer mevcut değilse, proje makefile tarafından bir varsayılan versiyon yaratın. Elbette bir makefile, veya herhangi bir make veya build sürecine sahip olduğunuzu varsayarsak.

+0

Bu işe yarayacak gibi geliyor ama ideal değil. Eğer bunu yapacak olsaydım, yapılandırma dosyasındaki Rails style (development | test | production) bölümlerini de kullanabilirim. Ancak, bu bir AngularJS uygulamasıdır ve nginx dışında bir sunucu bileşeni yoktur, bu yüzden özel bir oluşturma işlemi yapmak ve o anda yapmak zorunda kalırdım. Bu bir çözüm olabilir ama git bir çözüm bulabilirsem overboard. –

+0

AngularJS, istemci tarafında dosya oluşturabilir mi? – SzG

+0

Hayır, bu yalnızca istemci tarafında Javascript çerçevesidir. –

19

dosyasını ekledikten sonra yaparak tüm diğer değişiklikleri göz ardı edebilirsiniz:

git update-index --no-assume-unchanged path/to/file 
:

git update-index --assume-unchanged path/to/file 

noktada size tekrar izin verebilir daha fazla değişiklik itmek ihtiyacınız olduğuna karar verirseniz yaparak değiştirir

Dosyaları repoda eklemek yerine, onları neden görmezden gelip başka bir yere ekleyin, örneğin. bir kurulum dizini. Bu şekilde, repo'yu klonladıktan sonra, geliştiricilerin, gerekli dosyaları, göz ardı edilen uygun yere kopyalayacak bir init adımı yürütmesi gerekecektir.

+0

Daha önce belirttiğim gibi, bu, geliştiricilerin bunu elle yapmasını gerektirir. Bu -kuman-değişmemiş olanını depoya “atamıyorum”. Geliştiricilerin sadece 'git add 'komutunu kullanacağından ve değişikliklerinin depoya itileceğinden endişeleniyorum. –

+0

@BrennanCheung Hayır, ne yazık ki, "değişmeyen" bayrakını yaymanın iyi bir yolunu bilmiyorum. Ancak, bir geçici çözüm için güncellenmiş yanıtıma bakın. – dan

İlgili konular