GitをVisual Studioソリューション ( ) およびプロジェクトと組み合わせて.gitignore
使用する場合、どのファイルを含める必要がありますか?.sln
22 に答える
公式 GitHub の「有用な.gitignoreテンプレートのコレクション」を参照してください。
.gitignore
Visual Studio 用は、https://github.com/github/gitignore/blob/main/VisualStudio.gitignore にあります
。
OS、IDE、言語などに基づいて .gitignore ファイルを生成できるオンライン ツールがあります。 http://www.gitignore.io/をご覧ください。
2014 年 8 月 20 日に、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
C# プロジェクトには次の .gitignore を使用します。追加のパターンは、必要に応じて追加されます。
[Oo]bj
[Bb]in
*.user
*.suo
*.[Cc]ache
*.bak
*.ncb
*.log
*.DS_Store
[Tt]humbs.db
_ReSharper.*
*.resharper
Ankh.NoLoad
NuGet の packages.config ファイルは保持する必要がありますが、packages フォルダーは除外する必要があります。
#NuGet
packages/
私は通常、バイナリやソースから生成されたものをソース管理に保存しません。ただし、これについてはさまざまな意見があります。ビルド システムの作業が容易になる場合は、実行してください。ただし、これらの依存関係をバージョン管理していないため、リポジトリ内のスペースを占有するだけであると主張します。私の意見では、バイナリを中央の場所に保存してから、packages.config ファイルに依存して、必要なバージョンを示すことがより良い解決策です。
必要に応じて除外することを好みます。名前に文字列「bin」または「obj」が含まれるすべてを Shotgun で除外する必要はありません。少なくとも、必ずスラッシュを付けてください。
VS2010プロジェクトで私が始めたのは次のとおりです。
bin/
obj/
*.suo
*.user
そして、私がReSharperを使用しているという理由だけで、これも:
_ReSharper*
Visual Studio 2015 Update 3 では、本日 (2016 年 10 月 24 日) に Git 拡張機能が更新され、Visual Studio によって生成される.gitignoreは次のようになります。
## 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/
ビルドのデプロイに InstallShield ignores を追加しました。InstallShield は、Microsoft が Visual Studio Installer に向かう新しい方向性であるため、すべての新しいプロジェクトで使用を開始しました。この追加された行により、SingleImage インストール ファイルが削除されます。その他の InstallShield タイプには、特に DVD 配布が含まれる場合があります。これらのディレクトリ名を追加するか、[Ee]xpress/ だけを追加して、InstallShield LE 展開ファイルがリポジトリに入るのを防ぐことができます。
以下は、Install Shield LE とインストーラーの SingleImage デプロイメントを使用した VS2010 C# プロジェクトの .gitignore です。
#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
~$*
これが古いスレッドであることは知っていますが、このページにアクセスする新旧の両方のために、これらのファイルを生成できるgitignore.ioという Web サイトがあります。Web サイトにアクセスしたときに「visualstudio」を検索すると、これらのファイルが生成されます。また、複数の言語/ides が 1 つのドキュメントに連結されたファイルを無視するようにすることもできます。
美しい。
.gitignore
これは、私が取り組んでいた最近のプロジェクトからの抜粋です。コンパイル出力など、Visual Studio に関連していると思われるものを抽出しました。これはクロス プラットフォーム プロジェクトであるため、他のビルド システムによって生成されたファイルにはさまざまな無視ルールがあり、それらを正確に分離したことを保証することはできません。
*.dll
*.exe
*.exp
*.ilk
*.lib
*.ncb
*.log
*.pdb
*.vcproj.*.user
[Dd]ebug
[Rr]elease
おそらく、この質問は Community Wiki にすべきでしょう。そうすれば、どのタイプのプロジェクトでどのファイルを無視する必要があるかについてのコメントを含む 1 つのマスター リストを一緒に編集できますか?
ここでパーティーに遅れましたが、次のことも使用していることがわかります。一部は、公開リモートにプッシュするときに機密ファイルを非表示にするためにのみ役立つ場合があります。
#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/
これは Jens Lehmann の功績によるものです。ソース ディレクトリをコンパイラ プロジェクト ファイルとビルド出力とは別にしておくと、.gitignore を無効にして単純化できます。
path/to/build/directory/*
!*.sln
!*.vcproj
使用している言語はわかりませんが、上記は C++ プロジェクトで機能するはずです。
ソリューションで dbproj を使用している場合は、次を追加する必要があります。
#Visual Studio DB Project
*.dbmdl
[Ss]ql/
これが私のファイルの.NETプロジェクトで使用しているものです。.gitignore
[Oo]bj/
[Bb]in/
*.suo
*.user
/TestResults
*.vspscc
*.vssscc
これは、ほとんどすべてのMSアプローチであり、組み込みのVisual Studioテスターを使用し、プロジェクトにもTFSバインディングが含まれている可能性があります。
別の投稿者が述べたように、Visual Studio はこれを .gitignore の一部として生成します (少なくとも MVC 4 の場合)。
# SQL Server files
App_Data/*.mdf
App_Data/*.ldf
プロジェクトはソリューションのサブフォルダーである可能性があり、.gitignore ファイルはソリューション ルートに格納されているため、これは実際にはローカル データベース ファイルには影響しません (Git はそれらを で認識しますprojectfolder/App_Data/*.mdf
)。これを説明するために、これらの行を次のように変更しました。
# SQL Server files
*App_Data/*.mdf
*App_Data/*.ldf
*.manifest
一部のプロジェクトでは、ビジュアル スタジオgitignore.io
ファイルに追加する必要がある場合があります。
これは 、新しいプロジェクトの一部のVisual Studio プロジェクト プロパティがマニフェスト ファイルを生成するように設定されているためです。
「Visual Studio でのマニフェスト生成」を参照してください。
ただし、それらを生成して静的である (時間が経っても変化しない) 場合は、それらを.gitignore
ファイルから削除することをお勧めします。
これは、 Git for Windowsのようなプロジェクトが行ったことです (Git 2.24、2019 年第 4 四半期)。
Johannes Schindelin ( )によるコミット aac6ff7 (2019 年 9 月 5 日)を参照してください。( 2019 年 9 月 30 日、コミット 59438beでJunio C Hamanoによってマージされました)dscho
gitster
.gitignore
.manifest
:ファイルの無視を停止しますWindows では、「マニフェスト」、つまり機能と要件 (最小または最大の Windows バージョンなど) を説明する XML ドキュメントにリンクすることにより、追加のメタデータを実行可能ファイルに埋め込むことができます。
これらの XML ドキュメントは、.manifest
ファイルに格納されることが想定されています。明示的に何も指定されていない場合、少なくとも一部のVisual Studio バージョンはファイルを自動生成するため、以前は Git にファイルを無視するように依頼していました。
.manifest
ただし、現在は美しい
.manifest
ファイル :compat/win32/git.manifest
があるため、Visual Studio がマニフェストを自動生成することも、Git に.manifest
ファイルを無視させることもありません。