Yanıtlar:
Bunun avantajı .gitignore
, aksine havuzun kendisinde kontrol edilebilmesidir .git/info/exclude
. Diğer bir avantaj, .gitignore
dizine ö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, .gitignore
deponun 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/exclude
yalnı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 Eclipse
geliştirme için kullanıyorsa , bu geliştiricinin .build
klasö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
~/.gitignore
Yukarı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>/.gitignore
herhangi 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/exclude
belgelerle 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 .gitignore
dosyaları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?