development

.gitignore for Visual Studio 프로젝트 및 솔루션

big-blog 2020. 9. 27. 12:58
반응형

.gitignore for Visual Studio 프로젝트 및 솔루션


.gitignoreVisual Studio 솔루션 ( .sln) 및 프로젝트 와 함께 Git을 사용할 때 어떤 파일을 포함해야 합니까?


공식 GitHub의 "유용한 .gitignore 템플릿 모음"을 참조하십시오 .

.gitignore비주얼 스튜디오는 여기에서 찾을 수 있습니다 :
https://github.com/github/gitignore/blob/master/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

Microsoft 가 gitignore에 포함되어야한다고 생각 하는 내용에 관심이있는 사람들을 위해 다음 Visual Studio 2013 RTM은 새 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

참조 : MSDN에서 기본 .gitignore 파일 추가


NuGet packages.config 파일을 유지해야하지만 패키지 폴더는 제외해야합니다.

#NuGet
packages/

나는 일반적으로 바이너리 또는 내 소스에서 생성 된 모든 것을 소스 제어에 저장하지 않습니다. 그러나 이것에 대해 다른 의견이 있습니다. 빌드 시스템을 더 쉽게 만들 수 있다면 그렇게하십시오! 그러나 나는 이러한 종속성을 버전 화하지 않으므로 저장소에서 공간을 차지할 것이라고 주장합니다. 바이너리를 중앙 위치에 저장 한 다음 packages.config 파일에 의존하여 필요한 버전을 나타내는 것이 더 나은 솔루션이라고 생각합니다.


나는 필요에 따라 항목을 제외하는 것을 선호합니다. 이름에 "bin"또는 "obj"문자열이 포함 된 모든 항목을 Shotgun에서 제외하지 않으려 고합니다. 최소한 슬래시가있는 항목을 따라야합니다.

다음은 VS2010 프로젝트에서 시작하는 것입니다.

bin/
obj/
*.suo
*.user

ReSharper를 사용하기 때문에 다음과 같은 이점도 있습니다.

_ReSharper*

Visual Studio 2015 업데이트 3에서 Git 확장이 오늘 (2016-10-24) 업데이트 된 경우 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 무시가 추가되었습니다. InstallShield는 Microsoft가 Visual Studio Installer로 향하는 새로운 방향이므로 모든 새 프로젝트에서 사용하기 시작했습니다. 이 추가 된 행은 SingleImage 설치 파일을 제거합니다. 다른 InstallShield 유형에는 DVD 배포가 포함될 수 있습니다. 이러한 디렉토리 이름을 추가하거나 [Ee] xpress / 만 추가하여 InstallShield LE 배포 파일이 저장소에 들어가는 것을 방지 할 수 있습니다.

다음은 설치 관리자 용 SingleImage 배포와 함께 Install Shield LE를 사용하는 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
~$*

나는 이것이 여전히 정보를 공유하는 오래된 질문임을 이해합니다. Visual Studio 2017에서는 솔루션 파일을 마우스 오른쪽 단추로 클릭 하고 소스 제어에 솔루션 추가를 선택할 수 있습니다.

여기에 이미지 설명 입력

소스 폴더에 두 개의 파일이 추가됩니다.

  1. .gitattributes
  2. .gitignore

이것이 가장 쉬운 방법입니다.


In Visual Studio 2015 Team Explorer> Local Git Repositories> Project> Settings> Git> Repository Settings> Ignore & Attribute Files. 기본적으로 Visual Studio 솔루션에서 무시해야하는 항목이있는 .gitignore 파일을 추가 할 수 있습니다. 여기에 이미지 설명 입력

여기에 이미지 설명 입력


다음 .gitignore은 제가 작업 중이던 최근 프로젝트 에서 발췌 한 것 입니다. 컴파일 출력을 포함하여 Visual Studio와 관련이 있다고 생각되는 항목을 추출했습니다. 크로스 플랫폼 프로젝트이므로 다른 빌드 시스템에서 생성 된 파일에 대한 다양한 무시 규칙이 있으며 정확하게 분리했다고 보장 할 수 없습니다.

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

아마도이 질문은 Community Wiki 여야합니다. 그래서 우리 모두는 어떤 유형의 프로젝트에서 어떤 파일을 무시해야하는지에 대한 주석과 함께 하나의 마스터 목록을 함께 편집 할 수 있습니까?


에 신용 이 하나 옌스 레만 - 당신은 소스 디렉토리가 컴파일러 프로젝트 파일과 빌드 출력에 별도로 보관하는 경우, 당신이 그것을 부정하여 .gitignore를 단순화 할 수 있습니다 :

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

사용중인 언어를 말하지 않지만 위의 내용은 C ++ 프로젝트에서 작동합니다.


여기 파티에 늦었지만 다음을 사용하는 것도 발견했습니다. 일부는 공개 리모컨으로 푸시 할 때 민감한 파일을 숨기는 데만 유용 할 수 있습니다 .

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

나는 이것이 오래된 스레드라는 것을 알고 있지만이 페이지를 방문하는 새롭고 오래된 사람들을 위해 이러한 파일을 생성 할 수있는 gitignore.io 라는 웹 사이트가 있습니다. 웹 사이트에 방문했을 때 "visualstudio"를 검색하면 이러한 파일이 생성됩니다. 또한 하나의 문서에 연결된 파일을 무시하는 여러 언어 / ide를 가질 수 있습니다.

아름다운.


솔루션에서 dbproj를 사용하는 경우 다음을 추가 할 수 있습니다.

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

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


Visual Studio에는 2015 년 이상에서 즉시 Git을 지원하기 때문에 바로 가기 가 있습니다 . 새 솔루션 (또는 .git폴더 가없는 일부 )의 경우 솔루션 탐색기의 소스 제어 기능을 사용하십시오 .

솔루션을 마우스 오른쪽 버튼으로 클릭Add Solution to Source Control... 하고 팝업 메뉴 에서 항목을 선택 합니다.

.git리포지토리를 자동으로 초기화 .gitignore하고 솔루션 및 .gitattributes파일 (줄 끝 등)에 필요한 항목을 추가합니다 .

텍스트는 VS 콘솔에 나타납니다.

A new Git repository has been created for you in C:\<path to your solution>
Commit ______ created locally in repository.

끝난!


다음은 파일에 대해 .NET 프로젝트에서 사용하는 것.gitignore 입니다.

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

이것은 내장 된 Visual Studio 테스터를 사용하는 거의 모든 MS 접근 방식이며 거기에 일부 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

일부 프로젝트는 Visual Studio 파일 에 추가 *.manifest할 수 있습니다 .gitignore.io

새 프로젝트의 일부 Visual Studio 프로젝트 속성이 매니페스트 파일을 생성하도록 설정 되었기 때문 입니다.

"참조 Visual Studio에서 매니페스트 생성을 "

그러나 그것들을 생성했고 그것들이 정적이라면 (시간이 지나도 변하지 않는), .gitignore파일 에서 그것들을 제거하는 것이 좋습니다 .

Windows 용 Git 과 같은 프로젝트가 방금 수행 한 작업입니다 (Git 2.24, 2019 년 4 분기).

Johannes Schindelin ( )의 commit aac6ff7 (2019 년 9 월 5 일)을 참조하십시오 . (의해 병합 - Junio C 하마노 -59438be 커밋 2,019 30 구월)dscho
gitster

.gitignore: .manifest파일 무시 중지

Windows에서는 "매니페스트", 즉 기능 및 요구 사항을 설명하는 XML 문서 (예 : 최소 또는 최대 Windows 버전)에 연결하여 실행 파일에 추가 메타 데이터를 포함 할 수 있습니다.
이러한 XML 문서는 .manifest파일에 저장되어야 합니다.

최소한 일부 Visual Studio 버전 .manifest은 명시 적으로 지정된 파일이 없을 때 파일을 자동 생성 하므로 Git에 파일을 무시하도록 요청했습니다.

그러나 .manifest이제 멋진 파일이 있습니다. compat/win32/git.manifest, 따라서 Visual Studio가 자동으로 매니페스트를 생성하지도 않으며 Git이 .manifest더 이상 파일 을 무시하도록하지는 않습니다.

참고 URL : https://stackoverflow.com/questions/2143956/gitignore-for-visual-studio-projects-and-solutions

반응형