practice - .gitignore pour les projets et solutions Visual Studio




visual studio gitignore bin (12)

Comme mentionné par une autre affiche, Visual Studio génère ceci dans le cadre de son .gitignore (au moins pour MVC 4):

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

Puisque 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 en fait pas les fichiers de base de données locaux (Git les voit dans projectfolder/App_Data/*.mdf ). Pour rendre compte de cela, j'ai changé ces lignes comme suit:

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

Quels fichiers dois-je inclure dans .gitignore lorsque vous utilisez Git en conjonction avec Visual Studio Solutions ( .sln ) et Projects?


Dans Visual Studio 2015 Team Explorer> Référentiels Git locaux> Projet> Paramètres> Git> Paramètres du référentiel> Ignorer et fichiers d'attributs. Vous pouvez ajouter un fichier .gitignore avec des éléments qui doivent être ignorés par défaut dans les solutions Visual Studio.


Il y a un outil en ligne qui vous permet de générer un fichier .gitignore basé sur votre système d'exploitation, votre IDE, votre langue, etc. Jetez un coup d'œil à http://www.gitignore.io/ .

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
*.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

InstallShield ajouté ignore pour le déploiement de génération. InstallShield est la nouvelle direction Microsoft est dirigé sur Visual Studio Installer, donc nous avons commencé à l'utiliser sur tous les nouveaux projets. Cette ligne ajoutée supprime les fichiers d'installation SingleImage. D'autres types InstallShield peuvent inclure la distribution de DVD parmi d'autres. Vous pouvez ajouter ces noms de répertoire ou juste [Ee] xpress / pour empêcher les fichiers de déploiement InstallShield LE d'entrer dans le dépôt.

Voici notre .gitignore pour les projets VS2010 C # utilisant Install Shield LE avec les déploiements SingleImage pour l'installateur:

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

Je préfère exclure les choses selon les besoins. Vous ne voulez pas tirer tout exclure avec la chaîne "bin" ou "obj" dans le nom. Au moins, assurez-vous de suivre ceux avec 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*

Je sais que c'est un vieux fil de discussion, 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. Recherche "visualstudio" lors de l'atterrissage sur le site Web 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.


Pour ceux qui sont intéressés par ce que Microsoft pense devrait être inclus dans le gitignore, voici celui par défaut que Visual Studio 2013 RTM génère automatiquement lors de la création d'un nouveau Git-Repository:

## 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

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



Tandis que vous devriez conserver votre fichier packages.Config NuGet, vous devez exclure le dossier packages:

#NuGet
packages/

En général, je ne stocke pas les binaires, ou tout ce qui est généré à partir de ma source, dans le contrôle de la source. Il y a des opinions divergentes à ce sujet cependant. Si cela rend les choses plus faciles pour votre système de construction, faites-le! Je soutiendrais cependant que vous ne versionnez pas ces dépendances, alors elles prendront juste de la place dans votre dépôt. Stocker les binaires dans un emplacement central, puis en s'appuyant sur le fichier packages.config pour indiquer quelle version est nécessaire est une meilleure solution, à mon avis.


Tard à la fête ici, mais je trouve aussi que j'utilise ce qui suit. Certains peuvent seulement être utiles pour cacher des fichiers sensibles en poussant vers 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
*.azurePubxml

#Allow ReSharper .DotSettings (for non-namespace-provider properties)
!*.csproj.DotSettings

#Ignore private folder
/Private/

Voici un extrait d'un .gitignore sur un projet récent sur .gitignore je travaillais. J'ai extrait ceux qui, je crois, sont liés à Visual Studio, y compris les sorties de compilation; C'est un projet multiplateforme, donc il y a plusieurs autres règles d'ignorer 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 que cette question devrait être Wiki communautaire, donc nous pouvons tous éditer ensemble une liste principale avec des commentaires sur les fichiers qui devraient être ignorés pour quels types de projet?






gitignore