.gitignore pour les projets et solutions Visual Studio

Quels fichiers dois-je inclure dans .gitignore lors de l’utilisation de Git en conjonction avec Visual Studio Solutions ( .sln ) et Projects?

Voir la “Collection de gabarits utiles .gitignore ” de GitHub .

Le .gitignore pour Visual Studio se trouve ici:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

Il existe un outil en ligne qui vous permet de générer des fichiers .gitignore en fonction de votre système d’exploitation, de votre IDE, de votre langue, etc. Consultez le site http://www.gitignore.io/ .

entrer la description de l'image ici

Le 20/08/2014, voici le fichier généré pour 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 *.azureePubxml # TODO: Comment the next line if you want to checkin your web deploy settings # but database connection ssortingngs (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 

J’utilise le .gitignore suivant pour les projets C #. Des modèles supplémentaires sont ajoutés au fur et à mesure des besoins.

 [Oo]bj [Bb]in *.user *.suo *.[Cc]ache *.bak *.ncb *.log *.DS_Store [Tt]humbs.db _ReSharper.* *.resharper Ankh.NoLoad 

Pour ceux qui s’intéressent à ce que Microsoft pense devoir être inclus dans gitignore, voici celui que Visual Studio 2013 RTM génère par défaut lors de la création d’un nouveau référentiel 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 desortingtus # ========================= # 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 

Voir: Ajouter un fichier .gitignore par défaut sur MSDN

Pendant que vous devez conserver votre fichier packages.config NuGet, vous devez exclure le dossier packages:

 #NuGet packages/ 

En règle générale, je ne stocke pas de fichiers binarys, ni rien généré à partir de ma source, dans le contrôle de source. Il y a cependant des opinions divergentes à ce sujet. Si cela facilite les choses pour votre système de construction, faites-le! Je dirais cependant que vous ne contrôlez pas ces dépendances, elles prendront donc simplement de l’espace dans votre référentiel. Stocker les fichiers binarys dans un emplacement central, puis utiliser le fichier packages.config pour indiquer la version requirejse est, à mon avis, une meilleure solution.

Je préfère exclure les choses au besoin. Vous ne voulez pas exclure le fusil avec la chaîne “bin” ou “obj” dans le nom. Au moins, assurez-vous de suivre ceux qui ont une barre oblique.

Voici ce que je commence avec un projet VS2010:

 bin/ obj/ *.suo *.user 

Et seulement parce que j’utilise ReSharper, aussi ceci:

 _ReSharper* 

Sur Visual Studio 2015 Update 3 et l’extension Git mise à jour aujourd’hui (2016-10-24), le fichier .gitignore généré par Visual Studio est le suivant:

 ## 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 *.azureePubxml # 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/ 

InstallShield ajouté ignore le déploiement de la construction. InstallShield est la nouvelle orientation de Microsoft sur Visual Studio Installer. Nous avons donc commencé à l’utiliser sur tous les nouveaux projets. Cette ligne ajoutée supprime les fichiers d’installation SingleImage. D’autres types d’InstallShield peuvent inclure la dissortingbution de DVD parmi d’autres. Vous souhaiterez peut-être append ces noms de répertoire ou simplement [Ee] xpress / pour empêcher tout fichier de déploiement InstallShield LE d’entrer dans le repository.

Voici notre .gitignore pour les projets VS2010 C # en utilisant Install Shield LE avec les déploiements SingleImage pour le programme d’installation:

 #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 ~$* 

Voici un extrait d’un .gitignore sur un projet récent sur .gitignore je travaillais. J’ai extrait ceux qui, selon moi, sont liés à Visual Studio, y compris les sorties de compilation; c’est un projet multi-plateforme, il y a donc plusieurs autres règles d’ignorance pour les fichiers produits par d’autres systèmes de construction, et je ne peux pas garantir que je les ai séparés exactement.

 *.dll *.exe *.exp *.ilk *.lib *.ncb *.log *.pdb *.vcproj.*.user [Dd]ebug [Rr]elease 

Peut-être cette question devrait-elle être un wiki de communauté, afin que nous puissions tous éditer ensemble une liste maîtresse avec des commentaires sur les fichiers à ignorer pour quels types de projet?

Nous remercions Jens Lehmann pour celui-ci – si vous conservez des répertoires sources distincts des fichiers de projet de votre compilateur et générez des résultats, vous pouvez simplifier votre fichier .gitignore en le supprimant:

 path/to/build/directory/* !*.sln !*.vcproj 

Vous ne dites pas quelle (s) langue (s) vous utilisez, mais ce qui précède devrait fonctionner pour les projets C ++.

En retard à la fête ici, mais je trouve aussi que j’utilise ce qui suit. Certains peuvent être utiles uniquement pour masquer des fichiers sensibles lors de l’envoi à une télécommande publique .

 #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 *.azureePubxml #Allow ReSharper .DotSettings (for non-namespace-provider properties) !*.csproj.DotSettings #Ignore private folder /Private/ 

Je sais que c’est un vieux sujet, mais pour les nouveaux et les anciens qui visitent cette page, il existe un site Web appelé gitignore.io qui peut générer ces fichiers. Rechercher “visualstudio” lors de l’atterrissage sur le site et il va générer ces fichiers pour vous, vous pouvez également avoir plusieurs langues / ides ignorer les fichiers concaténés dans le document.

Beau.

Si vous utilisez un dbproj dans votre solution, vous souhaiterez append les éléments suivants:

 #Visual Studio DB Project *.dbmdl [Ss]ql/ 

Source: http://blogs.msdn.com/b/bahill/archive/2009/07/31/come-visit-revisit-the-beer-house-continuous-integration.aspx

Il existe un raccourci dans Visual Studio, car il prend en charge Git en 2015 ou plus. Pour les nouvelles solutions (ou certaines qui n’ont pas de dossier .git ), utilisez les fonctionnalités de contrôle de code source dans l’ Explorateur de solutions :

Cliquez avec le bouton droit sur votre solution et sélectionnez l’élément Add Solution to Source Control... dans le menu contextuel.

Il initialise automatiquement le repository .git , ajoute .gitignore avec les éléments nécessaires à votre solution et même le fichier .gitatsortingbutes (fins de ligne, etc.).

Le texte apparaîtra dans la console VS:

 A new Git repository has been created for you in C:\ Commit ______ created locally in repository. 

Terminé!

Voici ce que j’utilise dans mes projets .NET pour mon fichier .gitignore .

 [Oo]bj/ [Bb]in/ *.suo *.user /TestResults *.vspscc *.vssscc 

C’est à peu près une approche tout MS, qui utilise le testeur Visual Studio intégré, et un projet qui peut aussi contenir des liaisons TFS.

Comme mentionné par une autre affiche, Visual Studio génère ceci comme une partie de son .gitignore (du moins pour MVC 4):

 # SQL Server files App_Data/*.mdf App_Data/*.ldf 

Comme votre projet peut être un sous-dossier de votre solution et que le fichier .gitignore est stocké dans la racine de la solution, cela ne touchera pas les fichiers de firebase database locaux (Git les voit dans le projectfolder/App_Data/*.mdf ). Pour en tenir compte, j’ai changé ces lignes comme suit:

 # SQL Server files *App_Data/*.mdf *App_Data/*.ldf 

Dans Visual Studio 2015 Team Explorer> Référentiels Git locaux> Projet> Paramètres> Git> Paramètres du référentiel> Ignorer et atsortingbuer des fichiers. Par défaut, vous pouvez append un fichier .gitignore contenant des éléments à ignorer dans les solutions Visual Studio. entrer la description de l'image ici

entrer la description de l'image ici