template - visual studio 2017 git exclude file
.gitignore para proyectos y soluciones de Visual Studio (17)
¿Qué archivos debo incluir en .gitignore
cuando uso Git junto con Visual Studio Solutions ( .sln
) y Projects?
Aquí está lo que uso en mis proyectos .NET para mi archivo .gitignore
.
[Oo]bj/
[Bb]in/
*.suo
*.user
/TestResults
*.vspscc
*.vssscc
Esto es más o menos un enfoque completo de MS, que utiliza el comprobador de Visual Studio incorporado y un proyecto que puede tener algunos enlaces TFS allí también.
Aquí hay un extracto de un .gitignore
sobre un proyecto reciente en el que estaba trabajando. He extraído los que creo que están relacionados con Visual Studio, incluidas las salidas de compilación; es un proyecto multiplataforma, por lo que hay varias otras reglas de ignorar para archivos producidos por otros sistemas de compilación, y no puedo garantizar que los separé exactamente.
*.dll
*.exe
*.exp
*.ilk
*.lib
*.ncb
*.log
*.pdb
*.vcproj.*.user
[Dd]ebug
[Rr]elease
Quizás esta pregunta debería ser Community Wiki, para que todos podamos editar juntos una lista maestra con comentarios sobre qué archivos deben ignorarse para qué tipo de proyecto.
Como lo mencionó otro póster, Visual Studio genera esto como parte de su .gitignore (al menos para MVC 4):
# SQL Server files
App_Data/*.mdf
App_Data/*.ldf
Dado que su proyecto puede ser una subcarpeta de su solución, y el archivo .gitignore se almacena en la raíz de la solución, esto no tocará los archivos de la base de datos local (Git los ve en la projectfolder/App_Data/*.mdf
). Para dar cuenta de esto, cambié esas líneas así:
# SQL Server files
*App_Data/*.mdf
*App_Data/*.ldf
Consulte la "Colección de plantillas útiles .gitignore " de GitHub .
El .gitignore
para Visual Studio se puede encontrar aquí:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
En Visual Studio 2015 Update 3, y con la extensión Git actualizada a partir de hoy (2016-10-24), el .gitignore generado por Visual Studio es:
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
[Xx]64/
[Xx]86/
[Bb]uild/
bld/
[Bb]in/
[Oo]bj/
# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project''s static files in wwwroot
#wwwroot/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# DNX
project.lock.json
artifacts/
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Un-comment the next line if you do not want to checkin
# your web deploy settings because they may include unencrypted
# passwords
#*.pubxml
*.publishproj
# 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
# NuGet v3''s project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Microsoft Azure ApplicationInsights config file
ApplicationInsights.config
# Windows Store app package directory
AppPackages/
BundleArtifacts/
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# LightSwitch generated files
GeneratedArtifacts/
ModelManifest.xml
# Paket dependency manager
.paket/paket.exe
# FAKE - F# Make
.fake/
Gracias a Jens Lehmann por este : si mantienes los directorios de origen separados de tus archivos de proyecto del compilador y construyes el resultado, podrías simplificar tu .gitignore negándolo:
path/to/build/directory/*
!*.sln
!*.vcproj
No dice qué idioma (s) está usando, pero lo anterior debería funcionar para los proyectos de C ++.
Hay un acceso directo en Visual Studio, porque admite Git fuera de la caja en 2015 o más. Para las nuevas soluciones (o algunas que no tienen carpeta .git
) use las funciones de control de fuente en el Explorador de soluciones :
Haga clic con el botón derecho en su solución y seleccione el elemento Add Solution to Source Control...
en el menú emergente.
Inicializa automáticamente el repositorio .git
, agrega .gitignore
con los elementos necesarios a su solución e incluso el archivo .gitattributes
(finales de línea, etc.).
El texto aparecerá en la consola de VS:
A new Git repository has been created for you in C:/<path to your solution>
Commit ______ created locally in repository.
¡Hecho!
Hay una herramienta en línea que le permite generar archivos .gitignore según su sistema operativo, IDE, idioma, etc. Eche un vistazo a http://www.gitignore.io/ .
El 20 de agosto de 2014, aquí está el archivo que se genera para Visual Studio + Windows.
# Created by http://www.gitignore.io
### VisualStudio ###
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/
# Roslyn cache directories
*.ide/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
#NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding addin-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# 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/
# If using the old MSBuild-Integrated Package Restore, uncomment this:
#!**/packages/repositories.config
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
### Windows ###
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
Llego tarde a la fiesta aquí, pero también encuentro que uso lo siguiente. Algunos solo pueden ser útiles para ocultar archivos confidenciales cuando se empuja a un remoto público .
#Ignore email files delivered to specified pickup directory
*.eml
#Allow NuGet.exe (do not ignore)
!NuGet.exe
#Ignore WebDeploy publish profiles
*.Publish.xml
#Ignore Azure build csdef & Pubxml files
ServiceDefinition.build.csdef
*.azurePubxml
#Allow ReSharper .DotSettings (for non-namespace-provider properties)
!*.csproj.DotSettings
#Ignore private folder
/Private/
Para aquellos interesados en lo que Microsoft cree que debería incluirse en el gitignore, aquí está el predeterminado que Visual Studio 2013 RTM
genera automáticamente al crear un nuevo repositorio Git:
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Rr]elease/
x64/
build/
[Bb]in/
[Oo]bj/
# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
!packages/*/build/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.log
*.scc
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
*.ncrunch*
.*crunch*.local.xml
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.Publish.xml
# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
#packages/
# Windows Azure Build Output
csx
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.[Pp]ublish.xml
*.pfx
*.publishsettings
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
App_Data/*.mdf
App_Data/*.ldf
#LightSwitch generated files
GeneratedArtifacts/
_Pvt_Extensions/
ModelManifest.xml
# =========================
# Windows detritus
# =========================
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Mac desktop service store files
.DS_Store
Prefiero excluir las cosas según sea necesario. No desea que la escopeta excluya todo con la cadena "bin" u "obj" en el nombre. Al menos asegúrate de seguir a aquellos con una barra.
Aquí es con lo que comienzo en un proyecto VS2010:
bin/
obj/
*.suo
*.user
Y solo porque uso ReSharper, también esto:
_ReSharper*
Sé que este es un hilo antiguo, pero para el nuevo y el antiguo que visita esta página, hay un sitio web llamado gitignore.io que puede generar estos archivos. Busque "visualstudio" al aterrizar en el sitio web y generará estos archivos para usted, también puede hacer que varios idiomas / identidades ignoren los archivos concatenados en un documento.
Hermoso.
Se agregó InstallShield para el despliegue de compilación. InstallShield es la nueva dirección en la que Microsoft se dirige a través de Visual Studio Installer, por lo que hemos comenzado a usarlo en todos los proyectos nuevos. Esta línea agregada elimina los archivos de instalación de SingleImage. Otros tipos de InstallShield pueden incluir la distribución de DVD entre otros. Es posible que desee agregar esos nombres de directorio o simplemente [Ee] xpress / para evitar que los archivos de implementación de InstallShield LE entren en el repositorio.
Aquí está nuestro .gitignore para los proyectos C # VS2010 que utilizan las implementaciones de Install Shield LE with SingleImage para el instalador:
#OS junk files
[Tt]humbs.db
*.DS_Store
#Visual Studio files
*.[Oo]bj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
#InstallShield
[Ss]ingle[Ii]mage/
[Dd][Vv][Dd]-5/
[Ii]nterm/
#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*
#Project files
[Bb]uild/
#Subversion files
.svn
# Office Temp Files
~$*
Si bien debe conservar su archivo NuGet packages.config, debe excluir la carpeta de paquetes:
#NuGet
packages/
Normalmente no almaceno binarios, ni nada generado desde mi fuente, en el control de fuente. Hay diferentes opiniones sobre esto sin embargo. Si facilita las cosas para su sistema de compilación, ¡hágalo! Sin embargo, argumentaría que no estás versionando estas dependencias, por lo que solo ocuparán espacio en tu repositorio. Almacenar los binarios en una ubicación central, y luego confiar en el archivo packages.config para indicar qué versión se necesita es una solución mejor, en mi opinión.
Si está utilizando un dbproj en su solución, deseará agregar lo siguiente:
#Visual Studio DB Project
*.dbmdl
[Ss]ql/
Yo uso el siguiente .gitignore para proyectos de C #. Se agregan patrones adicionales a medida que se necesitan.
[Oo]bj
[Bb]in
*.user
*.suo
*.[Cc]ache
*.bak
*.ncb
*.log
*.DS_Store
[Tt]humbs.db
_ReSharper.*
*.resharper
Ankh.NoLoad