.gitignore NuGet mengecualikan paket / termasuk paket / repositories.config


89

Saya mencoba membuat .gitignore untuk proyek Visual Studio yang menggunakan NuGet. Saat ini berisi:

\packages/*
!packages/repositories.config

Ini tidak mengabaikan apa pun di folder. Semuanya dipentaskan di add. Saya juga telah mencoba:

packages/
!packages/repositories.config

Ini mengabaikan semua yang ada di folder paket dan tidak menyertakan paket / repositories.config.

Apa yang saya lakukan salah?

Jawaban:


114
/packages/
!packages/repositories.config

Anda juga dapat menambahkan .gitignoredi folder paket:

*
!repositories.config
!.gitignore

12
Ini akan menjadi malu jika .gitignorediabaikan itu sendiri. +1
Thomas

2
Blok pertama tidak berfungsi untuk saya (git versi 1.8.4.msysgit.0). Saya pikir baris pertama seharusnya packagestanpa bintang.
Grant Birchmeier

1
Saya menemukan bahwa Visual Studio masih menampilkan folder paket. Saya harus menghapus ms-persist.xmldari .gitfolder agar .gitignorefile dihormati. Lihat ericnelson.wordpress.com/2014/06/21/… untuk lebih lanjut tentang ini.
rudivonstaden

Saya tidak tahu versi mana yang Anda coba, tetapi /packages/tidak berhasil untuk saya. Sebaliknya saya menemukan jawaban ini sangat membantu. Singkatnya packages/*melakukan triknya. Git versi 2.6.1
Stelios Adamantidis

36

Saya menghadapi masalah yang sama.

Tidak ada solusi di atas yang berhasil untuk saya. Dan menurut saya ini adalah solusi yang buruk untuk mempertahankan beberapa file .ignore.

Beginilah cara saya menyelesaikannya.

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

Menggabungkan dua tanda bintang akan cocok dengan string folder mana pun. Saya pikir menghilangkan tanda bintang akan memiliki efek yang sama, tetapi ternyata saya (kami) salah, karena tampaknya tidak berhasil.

Template resmi .gitignore untuk Visual Studio merekomendasikan solusi berikut ini:

# 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

EDIT: Anda dapat menggunakan https://www.gitignore.io untuk menghasilkan file .ignore untuk proyek favorit Anda :-)


2
Ini adalah satu-satunya varian yang berfungsi untuk saya karena saya memiliki banyak proyek di repositori dengan folder paket di masing-masing. Terima kasih.
Michael Logutov

1
Salah satu yang berfungsi dengan baik adalah templat resmi yang disarankan untuk Visual Studio + hapus komentar di baris terakhir.
vezenkov

1
Ini sebenarnya sedikit berisiko. Ini mengabaikan folder apa pun yang bernama "paket", bukan hanya yang ada di tingkat solusi. Saya terlambat mengetahui bahwa beberapa kelas model saya tidak pernah menjadi bagian dari repositori.
Kaya

2
Sekarang telah diperbarui: # NuGet Packages .nupkg # Folder paket dapat diabaikan karena Pemulihan Paket ** / packages / # kecuali build /, yang digunakan sebagai target MSBuild. ! ** / packages / build / # Hapus komentar jika perlu namun umumnya akan dibuat ulang bila diperlukan #! ** / packages / repositories.config # File project.json NuGet v3 menghasilkan lebih banyak file yang dapat diabaikan * .nuget.props * .nuget. target
Daniel Ryan

kecuali itu !**/packages/build/tidak berhasil untuk saya, dengan solusi yang diberikan ... folder build tidak berkomitmen
JobaDiniz


8

Saya menemukan pola sederhana ini berhasil.

/packages/*/

Ini harus mengabaikan semua direktori di direktori paket root, tetapi menyertakan semua file di sana. Tidak yakin file lain selain repositories.config yang mungkin muncul di sana atau apakah mereka harus dimasukkan dalam repositori.

Lihat juga .gitignore Sintaks: bin vs bin / vs. bin / * vs. bin / **


0

Bagi saya hanya ini yang berhasil:

**/packages/**

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.