.gitignore NuGet excluir paquetes / incluir paquetes / repositories.config


89

Estoy intentando crear un .gitignore para un proyecto de Visual Studio que usa NuGet. Actualmente contiene:

\packages/*
!packages/repositories.config

Esto no ignora nada en la carpeta. Todo se organiza en un anuncio. También he probado:

packages/
!packages/repositories.config

Esto ignora todo en la carpeta de paquetes y no incluye los paquetes / repositories.config.

¿Qué estoy haciendo mal?

Respuestas:


114
/packages/
!packages/repositories.config

También puede agregar un .gitignoreen la carpeta de paquetes:

*
!repositories.config
!.gitignore

12
Que sería una pena si la .gitignoremisma ignorados. +1
Thomas

2
El primer bloque no me funciona (git versión 1.8.4.msysgit.0). Creo que la primera línea debería ser packagessin la estrella.
Grant Birchmeier

1
Descubrí que Visual Studio todavía mostraba la carpeta de paquetes. Tuve que eliminar ms-persist.xmlde la .gitcarpeta para .gitignoreque se respetara el archivo. Consulte ericnelson.wordpress.com/2014/06/21/… para obtener más información sobre esto.
rudivonstaden

No sé en qué versión has probado esto, pero /packages/no funcionó para mí. En cambio, encontré esta respuesta muy útil. En resumen packages/*hizo el truco. Versión de Git 2.6.1
Stelios Adamantidis

36

Me enfrenté al mismo problema.

Ninguna de las soluciones anteriores funcionó para mí. Y creo que es una mala solución mantener varios archivos .ignore.

Así es como lo resolví.

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

La combinación de dos asteriscos coincidirá con cualquier cadena de carpetas. Pensé que omitir los asteriscos tendría el mismo efecto, pero aparentemente yo (nosotros) estábamos equivocados, ya que no parece funcionar.

La plantilla .gitignore oficial para Visual Studio recomienda las siguientes soluciones:

# 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

EDITAR: Puede usar https://www.gitignore.io para generar un archivo .ignore para su proyecto favorito :-)


2
Esta es la única variante que funcionó para mí, ya que tenía varios proyectos en el repositorio con carpetas de paquetes en cada uno. Gracias.
Michael Logutov

1
La que funciona muy bien es la plantilla oficial recomendada para Visual Studio + descomente la última línea.
vezenkov

1
En realidad, esto es un poco arriesgado. Ignora cualquier carpeta denominada "paquetes", no solo la del nivel de solución. Descubrí demasiado tarde que algunas de mis clases modelo nunca habían sido parte del repositorio.
Rich

2
Ahora se ha actualizado: # NuGet Packages .nupkg # La carpeta de paquetes se puede ignorar debido a Restauración de paquetes ** / packages / # excepto build /, que se usa como destino de MSBuild. ! ** / packages / build / # Descomente si es necesario, sin embargo, generalmente se regenerará cuando sea necesario #! ** / packages / repositories.config # Los archivos project.json de NuGet v3 producen más archivos ignorables * .nuget.props * .nuget. objetivos
Daniel Ryan

excepto que !**/packages/build/no funciona para mí, con la solución dada ... las carpetas de compilación no están comprometidas
JobaDiniz


8

Encontré que este patrón simple funciona.

/packages/*/

Debería ignorar todos los directorios del directorio de paquetes raíz, pero incluir todos los archivos allí. No estoy seguro de qué otros archivos además de repositories.config podrían aparecer allí o si deberían incluirse en el repositorio.

Consulte también .gitignore Sintaxis: bin vs bin / vs bin / * vs bin / **


0

Para mí solo esto funcionó:

**/packages/**

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.