.gitignore NuGet paketleri dışlar / paketleri / repositories.config içerir


89

NuGet kullanan bir Visual Studio projesi için .gitignore oluşturmaya çalışıyorum. Şu anda şunları içerir:

\packages/*
!packages/repositories.config

Bu, klasördeki hiçbir şeyi göz ardı etmez. Her şey bir eklenti üzerinde sahnelenir. Ben de denedim:

packages/
!packages/repositories.config

Bu, paketler klasöründeki her şeyi yok sayar ve packages / repositories.config'i içermez.

Neyi yanlış yapıyorum?

Yanıtlar:


115
/packages/
!packages/repositories.config

Ayrıca .gitignorepaketler klasörüne bir de ekleyebilirsiniz :

*
!repositories.config
!.gitignore

12
Bu olur ise utanç verici .gitignorekendisini görmezden geldi. +1
Thomas

2
İlk blok benim için çalışmıyor (git sürüm 1.8.4.msysgit.0). Bence ilk satır packagesyıldızsız olmalı .
Grant Birchmeier

1
Visual Studio'nun hala paketler klasörünü görüntülediğini buldum. Dosyaya saygı duyulması ms-persist.xmliçin .gitklasörden kaldırmam .gitignoregerekiyordu. Bununla ilgili daha fazla bilgi için ericnelson.wordpress.com/2014/06/21/… bakın .
rudivonstaden

Bunu hangi versiyonda denediniz bilmiyorum ama /packages/bende işe yaramadı. Bunun yerine bu cevabı çok yararlı buldum . Kısacası packages/*hile yaptı. Git sürüm 2.6.1
Stelios Adamantidis

36

Ben de aynı sorunla karşılaştım.

Yukarıdaki çözümlerden hiçbiri benim için işe yaramadı. Birden çok .ignore dosyasını korumak için kötü bir çözüm olduğunu düşünüyorum.

Ben böyle çözdüm.

**/packages/*
!**/packages/repositories.config

İki yıldız işaretini birleştirmek, herhangi bir klasör dizisiyle eşleşecektir. Yıldız işaretlerini dışarıda bırakmanın da aynı etkiye sahip olacağını düşünmüştüm, ama görünüşe göre ben (biz) yanıldık, çünkü işe yaramıyor gibi görünüyor.

Visual Studio için resmi .gitignore şablonu aşağıdaki çözümleri önerir:

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config

DÜZENLEME: Favori projeniz için .ignore dosyası oluşturmak için https://www.gitignore.io kullanabilirsiniz :-)


2
Depoda, her birinde paketler klasörüyle çok sayıda proje bulunduğundan, benim için çalışan tek değişken budur. Teşekkürler.
Michael Logutov

1
Harika çalışan, Visual Studio için önerilen resmi şablon + son satırın açıklamasını kaldır.
vezenkov

1
Bu aslında biraz riskli. Yalnızca çözüm düzeyinde olanı değil, "paketler" adlı tüm klasörleri yok sayar. Bazı model sınıflarımın hiçbir zaman deponun bir parçası olmadığını çok geç öğrendim.
Zengin

2
Artık güncellendi: # NuGet Paketleri .nupkg # Paketler klasörü, MSBuild hedefi olarak kullanılan paket Geri Yükleme ** / packages / # dışında build / nedeniyle yok sayılabilir . ! ** / packages / build / # Gerekirse yorum kaldır, ancak genellikle ihtiyaç duyulduğunda yeniden oluşturulur #! ** / packages / repositories.config # NuGet v3'ün project.json dosyaları, daha fazla göz ardı edilebilir dosyalar üretir * .nuget.props * .nuget. hedefler
Daniel Ryan

bunun dışında !**/packages/build/benim için çalışmıyor, verilen çözümle ... derleme klasörleri teslim edilmiyor
JobaDiniz


8

Bu basit kalıbın işe yaradığını buldum.

/packages/*/

Kök paketler dizinindeki tüm dizinleri yoksaymalı, ancak oradaki tüm dosyaları içermelidir. Repositories.config dışında hangi dosyaların orada görünebileceğinden veya arşive dahil edilmeleri gerekip gerekmediğinden emin değilim.

Ayrıca bkz. .Gitignore Sözdizimi: bin - bin / - bin / * - bin / **


0

Benim için sadece bu işe yaradı:

**/packages/**

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.