Yanıtlar:
Bunun avantajı .gitignore, aksine havuzun kendisinde kontrol edilebilmesidir .git/info/exclude. Diğer bir avantaj, .gitignoredizine özgü yok sayma kuralları için her dizinde / alt dizinde bir tane olmak üzere birden çok dosyaya sahip olmanızdır .git/info/exclude.
Böylece, .gitignoredeponun tüm klonlarında kullanılabilir. Bu nedenle, büyük takımlar halinde tüm insanlar dosyalar Örnek aynı tür görmezden *.db, *.log. Ve birden fazla yüzünden daha belirgin yoksayma kurallarınız olabilir .gitignore.
.git/info/excludeyalnızca bireysel klonlar için geçerlidir, dolayısıyla bir kişinin klonunda yok saydığı şey başka bir kişinin klonunda mevcut değildir. Örneğin, birisi Eclipsegeliştirme için kullanıyorsa , bu geliştiricinin .buildklasör eklemesi mantıklı olabilir , .git/info/excludeçünkü diğer geliştiriciler Eclipse kullanmıyor olabilir.
Genel olarak, evrensel olarak yoksayılması gereken dosyalar / yoksayma kuralları girilmeli .gitignore, aksi takdirde yalnızca yerel klonunuzda yoksaymak istediğiniz dosyalar girilmelidir..git/info/exclude
~/.gitignoreYukarıdaki yorumunuza hangi özel girişin girilmesi gerektiğini anlamadım . Anladığım kadarıyla, yok sayma kuralları 3 düzeyde olabilir - $PROJECT/.git/info/exclude(proje, kullanıcı) belirli yoksayma kuralları için, $PROJECT/<any number of directories>/.gitignoreherhangi bir yerde herhangi bir kullanıcı (projeye teslim edildiğinde) ~/.gitignore projeye özgü yoksayma kuralları için , kullanıcıya özgü herhangi bir proje için yoksayma kuralları için o makinede. Hedefe dayanarak, bir giriş koymak için yer seçersiniz.
git rm --cached <path-name>depodan siler, ancak yerel olarak saklar. git update-index --skip-worktree <path-name>dosyadaki değişiklikleri yoksayar, ancak depoda saklar. Merak etmiyor: Neden sln dosyasının hariç tutulmasını istiyorsunuz? Bu .Net çözümünün önemli bir parçası değil mi?
Google: Dosyaları hariç tutmanın 3 yolu
.gitignore bu deponun her klonu için geçerlidir (sürümlü, herkes sahip olacak),.git/info/exclude yalnızca bu deponun yerel kopyasına uygulanır (yerel, başkalarıyla paylaşılmaz),~/.gitignore bilgisayarınızdaki tüm depolar için geçerlidir (yerel, başkalarıyla paylaşılmaz).3. aslında bilgisayarınızda bir yapılandırma ayarlamanız gerekir:
git config --global core.excludesfile '~/.gitignore'
.git/info/excludes, bağlandığı .git/info/excludebelgelerle onaylandığı şekilde dosyayı gerektiği zaman yanlışlıkla çağırır .
Sadece (gerçek dünya) deneyimimizi sunmak için: her geliştirme ortamında bazı yapılandırma dosyalarını özelleştirmek zorunda kaldığımızda .git / info / exclude kullanmaya başladık, ancak yine de kaynağın depoda tutulmasını ve diğer geliştiricilerin kullanımına sunulmasını istedik.
Bu şekilde, klonlandıktan ve değiştirildikten sonra yerel dosyalar, repodaki orijinal dosyaları etkilemeden, ancak repoda mutlaka göz ardı edilmeden taahhütlerden çıkarılabilir.
Projeye.gitignore özgü kuralları yoksay için kullanın . Ortamınıza özgü kuralları yoksaymak için veya genel yoksay dosyasını kullanın .exclude
Örneğin, genel yoksay dosyalarım kullandığım herhangi bir düzenleyici tarafından oluşturulan geçici dosyaları yok sayar - bu kural ortamım için geçerlidir ve aynı projedeki diğer geliştiriciler için farklı olabilir (belki de farklı bir düzenleyici kullanırlar). OTOH, proje .gitignoredosyalarım API anahtarları gibi şeyleri yok sayar ve yapay yapılar oluşturur; bunlar proje içindir herkes için aynı olmalıdır.
Bu yardımcı olur mu?