.gitignore สำหรับโครงการและโซลูชั่น Visual Studio


1144

ไฟล์ใดที่ฉันควรรวมไว้.gitignoreเมื่อใช้Gitร่วมกับVisual Studio Solutions ( .sln) และโครงการ


3
คำถามที่เกี่ยวข้อง: stackoverflow.com/questions/72298/…
Greg Hewgill

1
ฉันทำสิ่งนี้เป็นวิกิชุมชนและรวมคำตอบที่มีอยู่ทั้งหมดไว้ในโพสต์ กรุณาช่วยตามที่เห็นสมควร!
Martin Suchanek

12
ฉันจะระวังการเพิกเฉย. exe และ. pdb คุณอาจเพิกเฉยเครื่องมือที่คุณเก็บไว้กับแหล่งที่มาของคุณ (โดยไม่ได้ตั้งใจ, nunit gui, ฯลฯ ... )
James Gregory

2
@murki - ดูเหมือนว่านี่คือคำตอบ: coderjournal.com/2011/12/…
Ronnie Overby

7
เมื่อมี.slnการเช็คอินไฟล์เราจะได้รับเสียงที่แตกต่างเช่น -# Visual Studio 14 -VisualStudioVersion = 14.0.24720.0 +# Visual Studio 2013 +VisualStudioVersion = 12.0.31101.0 นี้สามารถหลีกเลี่ยงได้หรือไม่?
Jean Jordaan

คำตอบ:


592

ดูอย่างเป็นทางการ GitHub ของ"คอลเลกชันที่มีประโยชน์.gitignoreแม่"

.gitignoreสำหรับ Visual Studio สามารถพบได้ที่นี่:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore


8
โปรดทราบว่า ไฟล์นี้มีรายการที่จะไม่สนใจไฟล์ที่เผยแพร่ อย่างไรก็ตามวิธีเขียนกฎมันจะไม่สนใจโฟลเดอร์ใด ๆ ที่คุณเรียกว่า "เผยแพร่" และจะมีการละเว้นสิ่งที่คุณมีอยู่ข้างใต้ มันไม่ได้กำหนดเป้าหมายเฉพาะเอาท์พุท "เผยแพร่" Visual Studio มันจะไม่สนใจ แต่ยังมีอย่างอื่น
Rex Whitten

6
@starfighterxyz หากคุณคิดว่ามีข้อผิดพลาดใน gitignore ฉันขอแนะนำให้สร้างคำขอดึง
Chronial

9
ฉันไม่รู้จะพูดว่ามันเป็นบั๊ก ฉันแค่ดีใจที่ได้ใช้ Publish / เป็นชื่อ Controller และเป็น Project Folder names ฉันคิดว่านี่เป็นเพียงกรณีขอบ เป็นเพียงบางสิ่งที่จะช่วยชีวิตคุณสักสองสามชั่วโมง :)
Rex Whitten

2
@Learner เนื่องจากไฟล์เหล่านี้มีไฟล์ต่างกัน คุณควรเพิ่มสิ่งเหล่านี้ใน gitignore ทั่วโลกส่วนบุคคลของคุณแทนที่จะตรวจสอบสิ่งเหล่านั้นในgithub.com/github/gitignore/tree/master/Global
Chronial

1
@ErikAronesty คุณสามารถสร้างปัญหาหรือการประชาสัมพันธ์บน gitub repo แต่จะถูกละเว้นแล้วซึ่งรวมถึง*.user .vcxproj.user
Chronial

254

มีเครื่องมือออนไลน์ที่ช่วยให้คุณสร้างไฟล์ .gitignore ขึ้นอยู่กับระบบปฏิบัติการของคุณ, IDE, ภาษา ฯลฯ ลองดูที่เป็นhttp://www.gitignore.io/

ป้อนคำอธิบายรูปภาพที่นี่

ในวันที่ 8/20/2557 นี่คือไฟล์ที่สร้างขึ้นสำหรับ 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

เป็นการดีที่มันจะมีใบอนุญาตในไฟล์ (เป็นการดีที่จะเป็นใบอนุญาตที่ทำให้เกิดคำถามขึ้นในสภาพแวดล้อมขององค์กร)
Evgeni Sergeev

นอกจากนี้ควรมี.vs/ให้ดูที่นี่: stackoverflow.com/a/31879242/1143274
Evgeni Sergeev

110

ฉันใช้. gignignore ต่อไปนี้สำหรับโครงการ C # รูปแบบเพิ่มเติมจะถูกเพิ่มเป็นและเมื่อมีความจำเป็น

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

2
*.resharperไม่เห็นด้วยกับ *.ReSharper.userควรละเว้นการจับคู่ไฟล์แต่ได้รับการสนับสนุนจาก*.userกฎด้านบน
Drew Noakes

1
@DrewNoakes: ไฟล์ ReSharper อะไรที่คุณเชื่อว่าควรได้รับการแก้ไข
ต่อ Lundberg

4
@PerLundberg เหตุผลหนึ่งที่ควรพิจารณาคือคุณสามารถกำหนดค่าตัวเลือกการจัดรูปแบบโครงการมาตรฐาน ฯลฯ และบันทึกไฟล์กำหนดค่าด้วยโครงการ ถ้านี่เป็นคอมไพล์มันทำให้ทุกคนที่ใช้ Resharper ง่ายขึ้นในการจัดรูปแบบโครงการอย่างสม่ำเสมอ
Marc

@DrewNoakes - ข้อเสนอแนะสำหรับเรื่องนี้โปรด?
xameeramir

44

สำหรับผู้ที่สนใจในสิ่งที่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

โปรดดู: เพิ่มไฟล์. gitignore เริ่มต้นใน MSDN


37

ในขณะที่คุณควรเก็บไฟล์แพ็คเกจ NuGet ของคุณไว้คุณควรแยกโฟลเดอร์แพ็คเกจออก:

#NuGet
packages/

ฉันมักจะไม่เก็บไบนารีหรือสิ่งใด ๆ ที่สร้างขึ้นจากแหล่งที่มาของฉันในการควบคุมแหล่งที่มา มีความคิดเห็นที่แตกต่างกันในเรื่องนี้อย่างไรก็ตาม ถ้ามันทำให้สิ่งต่าง ๆ สำหรับระบบการสร้างทำได้ง่าย อย่างไรก็ตามฉันขอยืนยันว่าคุณไม่ได้กำหนดเวอร์ชันการอ้างอิงเหล่านี้ดังนั้นพวกเขาจะใช้พื้นที่ในที่เก็บของคุณ การจัดเก็บไบนารีในที่ตั้งส่วนกลางจากนั้นใช้ไฟล์ packages.config เพื่อระบุเวอร์ชันที่ต้องการซึ่งเป็นทางออกที่ดีกว่าในความคิดของฉัน


4
ใครสนใจที่จะอธิบายรายละเอียดว่าทำไมคุณถึงต้องการแยกโฟลเดอร์แพ็คเกจออก ไม่เหมาะสมที่จะรวมแพ็คเกจสำหรับการสร้างเซิร์ฟเวอร์ให้มีการขึ้นต่อกันหรือไม่
Joel Martinez

14
เป็นที่น่าสังเกตว่าทีม NuGet ได้นำคุณลักษณะ 'แพ็คเกจการคืนค่า' มาใช้สำหรับปัญหานี้อย่างแท้จริง มีเอกสารในเว็บไซต์ NuGet ซึ่งอธิบายคุณสมบัติและอธิบายวิธีใช้ใน Visual Studio
ajk

4
หากคุณเพิกเฉยแพ็คเกจและใช้แพ็คเกจแพ็กเกจ nuget จะเป็นประโยชน์ในการอนุญาตให้ nuget.exe เมื่อมีคนดาวน์โหลดสิ่งนี้จะช่วยให้ VS บอกว่าคุณลักษณะได้รับการเปิดใช้งานสำหรับการแก้ปัญหา: !NuGet.exe<- อย่าเพิกเฉยต่อไฟล์นี้
danludwig

สำหรับบรรดาของคุณโดยใช้ AppHarbor มันเป็นที่น่าสังเกตว่าไม่รวมแพคเกจโฟลเดอร์จะทำให้เกิดการสร้างของคุณล้มเหลวการใช้งาน :)
โจเอลมาร์ติเน

18

ฉันชอบที่จะยกเว้นสิ่งต่าง ๆ ตามความจำเป็น คุณไม่ต้องการปืนลูกซองยกเว้นทุกอย่างด้วยสตริง "bin" หรือ "obj" ในชื่อ อย่างน้อยต้องแน่ใจว่าได้ปฏิบัติตามคำแนะนำต่อไปนี้

นี่คือสิ่งที่ฉันเริ่มต้นในโครงการ VS2010:

bin/
obj/
*.suo
*.user

และเพียงเพราะฉันใช้ ReSharper ด้วยเช่นกัน:

_ReSharper*

ตกลง. นอกจากนี้ยังใช้กับ "debug" เพิ่มเครื่องหมายสแลชต่อท้ายลงในส่วนนี้เพื่อหลีกเลี่ยงการข้ามไฟล์ที่มีการดีบักในชื่อ
John Korsnes

16

ฉันเข้าใจว่านี่เป็นคำถามเก่ายังคงแบ่งปันข้อมูล ใน Visual Studio 2017 คุณสามารถคลิกขวาที่ไฟล์โซลูชันแล้วเลือกเพิ่มโซลูชันลงในแหล่งควบคุม

ป้อนคำอธิบายรูปภาพที่นี่

นี่จะเพิ่มสองไฟล์ไปยังโฟลเดอร์ต้นทางของคุณ

  1. .gitattributes
  2. .gitignore

นี่เป็นวิธีที่ง่ายที่สุด


11

ใน Visual Studio 2015 อัปเดต 3 และด้วยส่วนขยาย Git ที่อัปเดต ณ วันนี้ (2016-10-24),. gitignore ที่สร้างโดย Visual Studio คือ:

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

3
ฉันชอบส่วนนี้:Backup & report files from converting an old project file to a newer Visual Studio version. Backup files are not needed, because we have git ;-)
Jeancarlo Fontalvo

10

ใน Visual Studio 2015 Team Explorer> ที่เก็บ Git ในพื้นที่> โครงการ> การตั้งค่า> Git> การตั้งค่าที่เก็บ> ละเว้น & แอตทริบิวต์ไฟล์คุณสามารถเพิ่มไฟล์. gitignore ด้วยรายการควรถูกละเว้นในโซลูชันสตูดิโอภาพโดยค่าเริ่มต้น ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


9

InstallShield ที่เพิ่มเข้ามาจะไม่สนใจสำหรับการปรับใช้บิลด์ InstallShield เป็นทิศทางใหม่ที่ Microsoft มุ่งไปที่ Visual Studio Installer ดังนั้นเราจึงเริ่มใช้มันกับโครงการใหม่ทั้งหมด บรรทัดที่เพิ่มนี้จะลบไฟล์การติดตั้ง SingleImage InstallShield ประเภทอื่น ๆ อาจรวมถึงการกระจายดีวีดีในหมู่อื่น ๆ คุณอาจต้องการเพิ่มชื่อไดเรกทอรีเหล่านั้นหรือเพียงแค่ [Ee] xpress / เพื่อป้องกันไฟล์การปรับใช้ InstallShield LE ไม่ให้เข้าสู่ repo

นี่คือ. gignignore ของเราสำหรับโครงการ VS2010 C # โดยใช้ Install Shield LE พร้อมการปรับใช้ SingleImage สำหรับตัวติดตั้ง:

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

1
ฉันพูดความคิดเห็นของ James Gregory ที่นี่: "ฉันจะระวังการเพิกเฉย. exe และ. pdb คุณอาจเพิกเฉยต่อการใช้เครื่องมือที่คุณเก็บไว้กับแหล่งที่มาของคุณโดยไม่ตั้งใจ (nant, nunit gui, etc ... ) - James Gregory 21 พฤษภาคม 2010 เวลา 13:32 "
จิมราดเรน

1
*.resharperไม่เห็นด้วยกับ *.ReSharper.userควรละเว้นการจับคู่ไฟล์แต่ได้รับการสนับสนุนจาก*.userกฎด้านบน
Drew Noakes

เพียงการชี้แจง - จริง ๆ แล้วมันย้าย BACK ไปที่ InstallShield ซึ่งมีอยู่ก่อนหน้าโปรแกรมติดตั้ง VisualStudio อย่างน้อยก็ย้อนกลับไปในปี 1998!
Mathieson

7

ฉันรู้ว่านี่เป็นเธรดเก่า แต่สำหรับใหม่และเก่าที่เข้าชมหน้านี้มีเว็บไซต์ที่เรียกว่าgitignore.ioซึ่งสามารถสร้างไฟล์เหล่านี้ได้ ค้นหา "visualstudio" เมื่อเชื่อมโยงไปถึงบนเว็บไซต์และมันจะสร้างไฟล์เหล่านี้ให้กับคุณนอกจากนี้คุณยังสามารถมีหลายภาษา / ides ละเว้นไฟล์ที่รวมเข้าไว้ในเอกสารเดียว

สวย.


6

นี่คือสารสกัดจาก.gitignoreโครงการล่าสุดที่ฉันกำลังทำอยู่ ฉันได้แยกไฟล์ที่ฉันเชื่อว่าเกี่ยวข้องกับ Visual Studio รวมถึงผลลัพธ์ของการคอมไพล์แล้ว มันเป็นโครงการข้ามแพลตฟอร์มดังนั้นจึงมีกฎการเพิกเฉยอื่น ๆ อีกมากมายสำหรับไฟล์ที่สร้างโดยระบบบิลด์อื่น ๆ และฉันไม่สามารถรับประกันได้ว่าฉันแยกพวกเขาออกอย่างแน่นอน

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

บางทีคำถามนี้ควรเป็น Community Wiki ดังนั้นเราจึงสามารถแก้ไขรายการหลักหนึ่งรายการพร้อมกับความคิดเห็นเกี่ยวกับไฟล์ที่ควรละเว้นสำหรับโครงการประเภทใด


ดูความคิดเห็นของ James Gregory เกี่ยวกับคำตอบอื่น: "ฉันจะระวังการเพิกเฉย. exe และ. pdb คุณอาจเพิกเฉยต่อการใช้เครื่องมือที่คุณเก็บไว้กับแหล่งที่มาของคุณโดยไม่ได้ตั้งใจ (nant, nunit gui, etc ... ) - James Gregory 21 พฤษภาคม '10 เวลา 13:32 "
Jim Raden

2
@JimRaden โดยทั่วไปแล้วมันเป็นการดีที่สุดที่จะหลีกเลี่ยงการตรวจสอบในเครื่องมือไบนารีลงใน Git แนวทางปฏิบัติที่ดีที่สุดคือตรวจสอบแหล่งที่มาของคุณถึง Git เท่านั้น หากคุณต้องการเครื่องมือไบนารีรวมสคริปต์สำหรับติดตั้งหรือ submodule ด้วยเครื่องมือเหล่านั้น
Brian Campbell

6

ให้เครดิตกับJens Lehmann สำหรับเอกสารนี้ - หากคุณเก็บไดเรกทอรีแหล่งข้อมูลแยกไว้ในไฟล์โครงการคอมไพเลอร์ของคุณและสร้างผลลัพธ์คุณสามารถทำให้. gitignore ของคุณง่ายขึ้นด้วยการปฏิเสธ:

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

คุณไม่ได้พูดภาษาที่คุณใช้ แต่ข้างต้นควรใช้กับโครงการ C ++


ฉันไม่ทราบว่ามีการปฏิเสธสถานะใน. gitignore เคล็ดลับที่เป็นประโยชน์!
Jim Raden

6

ไปงานปาร์ตี้สายที่นี่ แต่ฉันก็พบว่าฉันใช้สิ่งต่อไปนี้ บางไฟล์อาจมีประโยชน์สำหรับการซ่อนไฟล์ที่มีความละเอียดอ่อนเมื่อกดไปที่รีโมตสาธารณะ

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

รุ่นล่าสุดไม่จำเป็นต้อง unignore nuget.exe อย่างชัดเจน
tofutim

@tofutim เวอร์ชันล่าสุดของอะไร คอมไพล์ตัวเอง?
danludwig


4

มีทางลัดใน Visual Studio เพราะรองรับ Git นอกกรอบในปี 2558 หรือสูงกว่า สำหรับโซลูชันใหม่ (หรือบางรายการที่ไม่มี.gitโฟลเดอร์) ให้ใช้คุณสมบัติการควบคุมแหล่งข้อมูลในโซลูชัน Explorer :

คลิกขวาที่โซลูชันของคุณแล้วเลือก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.

ทำ!



3

ตามที่กล่าวถึงโดยผู้โพสต์คนอื่น 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

1
ที่จริงแล้วคอมไพล์จับคู่รูปแบบที่สัมพันธ์กับไดเรกทอรีย่อยด้วยเว้นแต่ว่าคุณจะเริ่มต้นด้วย " /" ซึ่งในกรณีนี้พวกเขาจับคู่สิ่งต่าง ๆ ในไดเรกทอรีเดียวกับ.gitignoreไฟล์
SamB

0

โครงการบางคนอาจต้องการที่จะเพิ่ม*.manifestให้กับพวกเขาสตูดิโอภาพgitignore.ioไฟล์

นั่นเป็นเพราะ บาง Visual Studio คุณสมบัติของโครงการโครงการใหม่มีการกำหนดให้สร้างไฟล์ที่ประจักษ์

ดู "การสร้างรายการใน Visual Studio "

แต่ถ้าคุณสร้างพวกเขาและพวกเขาคง (ไม่เปลี่ยนแปลงในช่วงเวลา) แล้วมันเป็นความคิดที่ดีที่จะลบพวกเขาออกจาก.gitignoreไฟล์

นั่นคือสิ่งที่โครงการเช่นGit สำหรับ Windowsเพิ่งทำ (สำหรับ Git 2.24, Q4 2019)

ดูกระทำ aac6ff7 (5 กันยายน 2019) โดยโยฮันเน Schindelin (dscho )
(ผสานโดยJunio ​​C Hamano - gitster- in 59438be , 30 Sep 2019)

.gitignore: หยุดการเพิกเฉย.manifestไฟล์

บน Windows มีความเป็นไปได้ที่จะฝังข้อมูลเมตาเพิ่มเติมลงในไฟล์เรียกทำงานโดยการลิงก์ใน "รายการ" คือเอกสาร XML ที่อธิบายความสามารถและข้อกำหนด (เช่นรุ่น Windows ขั้นต่ำหรือสูงสุด)
เอกสาร XML เหล่านี้คาดว่าจะถูกเก็บไว้ใน.manifestไฟล์

อย่างน้อยไฟล์Visual Studio บางรุ่นสร้างขึ้นโดยอัตโนมัติ.manifestเมื่อไม่มีการระบุอย่างชัดเจนดังนั้นเราจึงใช้เพื่อขอให้ Git ละเว้นไฟล์เหล่านั้น

อย่างไรก็ตามเรามี.manifestไฟล์ที่สวยงามในขณะนี้: compat/win32/git.manifestดังนั้น Visual Studio จะไม่สร้างรายการให้เราโดยอัตโนมัติและเราไม่ต้องการให้ Git เพิกเฉย.manifestต่อไฟล์อีกต่อไป


0

คุณสามารถสร้างหรือแก้ไขไฟล์. gitignore สำหรับ repo ของคุณโดยไปที่มุมมองการตั้งค่าใน Team Explorer จากนั้นเลือกการตั้งค่าที่เก็บ เลือกแก้ไขสำหรับ. gitignore ของคุณ

มันสร้างตัวกรองโดยอัตโนมัติซึ่งจะไม่สนใจไดเรกทอรีสร้าง VS ที่เฉพาะเจาะจงทั้งหมด

ป้อนคำอธิบายรูปภาพที่นี่

รายละเอียดเพิ่มเติมดูได้ที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.