.gitignore cho các dự án và giải pháp của Visual Studio


1144

Tôi nên bao gồm những tệp nào .gitignorekhi sử dụng Git kết hợp với Visual Studio Solutions ( .sln) và Dự án?



1
Tôi đã thực hiện điều này thành một wiki cộng đồng và đã hợp nhất tất cả các câu trả lời hiện có vào bài viết. Hãy đóng góp khi bạn thấy phù hợp!
Martin suchanek

12
Tôi sẽ cẩn thận bỏ qua .exe và .pdb, bạn có thể vô tình bỏ qua công cụ mà bạn lưu trữ với nguồn của mình (nant, nunit gui, v.v ...).
James Gregory

2
@murki - có vẻ như đây là câu trả lời: coderjournal.com/2011/12/ Kẻ
Ronnie Overby

7
Với .slncác tệp được kiểm tra, chúng tôi nhận được các nhiễu khác nhau như -# Visual Studio 14 -VisualStudioVersion = 14.0.24720.0 +# Visual Studio 2013 +VisualStudioVersion = 12.0.31101.0 Điều này có thể tránh được không?
Jean Jordaan

Câu trả lời:


592

Xem "Bộ sưu tập các mẫu .gitignore " chính thức của GitHub .

.gitignorethể tìm thấy Visual Studio tại đây:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore


8
Xin lưu ý. Tập tin này chứa một mục để bỏ qua các tập tin được công bố. Tuy nhiên, theo cách viết của quy tắc, nó sẽ bỏ qua bất kỳ thư mục nào bạn đã gọi là "Xuất bản" và sẽ bỏ qua mọi thứ bạn có bên dưới nó. Nó không đặc biệt nhắm mục tiêu đầu ra "Xuất bản" của Visual Studio. Nó sẽ bỏ qua nó, nhưng cũng có những thứ khác.
Rex Whitten

6
@starfighterxyz nếu bạn nghĩ rằng có một lỗi trong gitignore, tôi khuyên bạn nên tạo một yêu cầu kéo.
Biên niên sử

9
Chà, tôi không biết (đủ?) Để nói đó là một lỗi. Tôi chỉ muốn sử dụng Publish / làm tên Trình điều khiển và làm tên Thư mục dự án. Tôi nghĩ rằng đây chỉ là một trường hợp cạnh. Chỉ cần một cái gì đó để tiết kiệm một vài giờ trong cuộc sống của bạn :)
Rex Whitten

2
@Learner vì đây là trong các tập tin khác nhau. Bạn nên thêm những để gitignore toàn cầu cá nhân của bạn, thay vì kiểm tra chúng trong. Github.com/github/gitignore/tree/master/Global
Chronial

1
@ErikAronesty bạn có thể tạo một vấn đề hoặc PR trên repo github. Nhưng *.userđã bị bỏ qua, trong đó bao gồm .vcxproj.user.
Biên niên sử

254

Có một công cụ trực tuyến cho phép bạn tạo tệp .gitignore dựa trên HĐH, IDE, ngôn ngữ, v.v. Hãy xem tại địa chỉ http://www.gitignore.io/ .

nhập mô tả hình ảnh ở đây

Vào ngày 20 tháng 8 năm 2014, đây là tệp được tạo cho 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

Lý tưởng nhất, nó sẽ bao gồm một giấy phép trong tập tin. (Lý tưởng nhất, đó sẽ là một giấy phép không đặt ra câu hỏi nào trong môi trường công ty.)
Evgeni Sergeev

Ngoài ra, điều này nên có .vs/, xem tại đây: stackoverflow.com/a/31879242/1143274
Evgeni Sergeev

110

Tôi sử dụng .gitignore sau đây cho các dự án C #. Các mẫu bổ sung được thêm vào khi cần thiết.

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

2
Không đồng ý với *.resharper. Các tập tin phù hợp *.ReSharper.usernên được bỏ qua, nhưng đó được phục vụ theo *.userquy tắc trên.
vẽ Noakes

1
@DrewNoakes: Các tệp ReSharper mà bạn tin rằng nên được kiểm soát sửa đổi?
Per Lundberg

4
@PerLundberg Một lý do đáng để xem xét là bạn có thể định cấu hình các tùy chọn định dạng dự án tiêu chuẩn, v.v. và lưu các tệp cấu hình với dự án. Nếu đây là git, mọi người sử dụng Resharper sẽ dễ dàng giữ cho dự án được định dạng nhất quán.
Marc

@DrewNoakes - Bạn có đề xuất nào cho việc này không?
xameeramir

44

Đối với những người quan tâm đến những gì Microsoft nghĩ nên được đưa vào gitignore, đây là cái mặc định Visual Studio 2013 RTMsẽ tự động tạo khi tạo Kho lưu trữ Git mới:

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

Xem: Thêm tệp .gitignore mặc định trên MSDN


37

Mặc dù bạn nên giữ tệp NuGet gói.config, bạn nên loại trừ thư mục gói:

#NuGet
packages/

Tôi thường không lưu trữ nhị phân, hoặc bất cứ thứ gì được tạo từ nguồn của tôi, trong kiểm soát nguồn. Có nhiều ý kiến ​​khác nhau về điều này tuy nhiên. Nếu nó làm cho mọi thứ dễ dàng hơn cho hệ thống xây dựng của bạn, hãy làm điều đó! Tuy nhiên, tôi cho rằng bạn không phiên bản các phụ thuộc này, vì vậy chúng sẽ chỉ chiếm dung lượng trong kho lưu trữ của bạn. Theo tôi, việc lưu trữ các tệp nhị phân ở một vị trí trung tâm, sau đó dựa vào tệp tests.config để chỉ ra phiên bản nào là cần thiết là một giải pháp tốt hơn, theo ý kiến ​​của tôi.


4
Bất cứ ai quan tâm để giải thích lý do tại sao bạn muốn loại trừ thư mục gói? không có nghĩa là bao gồm các gói cho máy chủ xây dựng để có các phụ thuộc?
Joel Martinez

14
Điều đáng chú ý là nhóm NuGet đã triển khai tính năng 'khôi phục gói' cho chính xác vấn đề này. Có một tài liệu trên trang NuGet giải thích tính năng này và mô tả cách sử dụng nó trong Visual Studio.
ajk

4
Nếu bạn bỏ qua các gói và đang sử dụng khôi phục gói nuget, việc cho phép nuget.exe là hữu ích. Khi ai đó tải xuống, thông báo này giúp VS cho biết tính năng này đã được bật cho giải pháp: !NuGet.exe<- đừng bỏ qua tệp này.
danludwig

Đối với những người sử dụng AppHarbor, đáng chú ý rằng việc loại trừ thư mục gói sẽ khiến bản dựng của bạn không triển khai :)
Joel Martinez

18

Tôi thích loại trừ những thứ trên cơ sở khi cần thiết. Bạn không muốn shotgun loại trừ mọi thứ với chuỗi "bin" hoặc "obj" trong tên. Ít nhất hãy chắc chắn làm theo những người có dấu gạch chéo.

Đây là những gì tôi bắt đầu với một dự án VS2010:

bin/
obj/
*.suo
*.user

Và chỉ bởi vì tôi sử dụng ReSharper, cũng thế này:

_ReSharper*

Đồng ý. Ngoài ra, điều này đi cho "gỡ lỗi". Thêm dấu gạch chéo vào đây để tránh bỏ qua các tệp có gỡ lỗi trong tên.
John Korsnes

16

Tôi hiểu đây là một câu hỏi cũ, vẫn chia sẻ thông tin. Trong Visual Studio 2017, bạn có thể chỉ cần nhấp chuột phải vào tệp giải pháp và chọn Thêm giải pháp để kiểm soát nguồn

nhập mô tả hình ảnh ở đây

Điều này sẽ thêm hai tập tin vào thư mục nguồn của bạn.

  1. .gitattribut
  2. .gitignore

Đây là cách dễ dàng nhất.


11

Trên Visual Studio 2015 Update 3 và với tiện ích mở rộng Git được cập nhật vào ngày hôm nay (2016-10-24), .gitignore được tạo bởi Visual Studio là:

## 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
Tôi thích phần này: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

Trong Visual Studio 2015 Team Explorer> Kho lưu trữ Git cục bộ> Dự án> Cài đặt> Git> Cài đặt kho lưu trữ> Bỏ qua & Thuộc tính tệp. Bạn có thể thêm tệp .gitignore với các mục nên được bỏ qua trong các giải pháp phòng thu trực quan theo mặc định. nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


9

Đã thêm InstallShield bỏ qua cho việc triển khai xây dựng. InstallShield là hướng đi mới mà Microsoft hướng tới Visual Studio Installer, vì vậy chúng tôi đã bắt đầu sử dụng nó cho tất cả các dự án mới. Dòng được thêm này sẽ loại bỏ các tệp cài đặt SingleImage. Các loại InstallShield khác có thể bao gồm phân phối DVD giữa các loại khác. Bạn có thể muốn thêm các tên thư mục đó hoặc chỉ [Ee] xpress / để ngăn bất kỳ tệp triển khai InstallShield LE nào xâm nhập vào repo.

Dưới đây là .gitignore của chúng tôi cho các dự án VS2010 C # bằng cách sử dụng Install Shield LE với các triển khai SingleImage cho trình cài đặt:

#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
Tôi trích dẫn nhận xét của James Gregory tại đây: "Tôi sẽ cẩn thận bỏ qua .exe và .pdb, bạn có thể vô tình bỏ qua công cụ mà bạn lưu trữ với nguồn của mình (nant, nunit gui, v.v ...). - James Gregory ngày 21 tháng 5 ' 13:32 "
Jim Raden

1
Không đồng ý với *.resharper. Các tập tin phù hợp *.ReSharper.usernên được bỏ qua, nhưng đó được phục vụ theo *.userquy tắc trên.
vẽ Noakes

Chỉ cần làm rõ - nó thực sự chuyển BACK sang InstallShield, đã tồn tại trước đó với trình cài đặt VisualStudio, ít nhất là từ năm 1998!
Mathieson

7

Tôi biết đây là một chủ đề cũ nhưng đối với người mới và người cũ truy cập trang này, có một trang web có tên gitignore.io có thể tạo các tệp này. Tìm kiếm "visualstudio" khi hạ cánh trên trang web và nó sẽ tạo ra các tệp này cho bạn, ngoài ra bạn có thể có nhiều ngôn ngữ / ides bỏ qua các tệp được nối vào một tài liệu.

Xinh đẹp.


6

Đây là một trích xuất từ ​​một .gitignoredự án gần đây tôi đang làm việc. Tôi đã trích xuất những cái mà tôi tin là có liên quan đến Visual Studio, bao gồm các đầu ra biên dịch; đó là một dự án đa nền tảng, do đó, có nhiều quy tắc bỏ qua khác cho các tệp được tạo bởi các hệ thống xây dựng khác và tôi không thể đảm bảo rằng tôi tách chúng ra một cách chính xác.

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

Có lẽ câu hỏi này phải là Community Wiki, vì vậy tất cả chúng ta có thể chỉnh sửa cùng một danh sách chính với các nhận xét về những tệp nào sẽ bị bỏ qua cho loại dự án nào?


Xem bình luận của James Gregory về một câu trả lời khác: "Tôi sẽ cẩn thận bỏ qua .exe và .pdb, bạn có thể vô tình bỏ qua công cụ mà bạn lưu trữ với nguồn của mình (nant, nunit gui, v.v ...). - James Gregory 21 tháng 5 '10 lúc 13:32 "
Jim Raden

2
@JimRaden Nói chung, tốt nhất là tránh kiểm tra các công cụ nhị phân vào Git. Thực hành tốt nhất là chỉ kiểm tra nguồn của bạn để Git; nếu bạn cần các công cụ nhị phân, bao gồm một tập lệnh để cài đặt chúng hoặc một mô hình con chỉ với các công cụ đó.
Brian Campbell

6

Tín dụng cho Jens Lehmann cho cái này - nếu bạn giữ các thư mục nguồn riêng biệt với các tệp dự án trình biên dịch của bạn và xây dựng đầu ra, bạn có thể đơn giản hóa .gitignore của mình bằng cách phủ nhận nó:

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

Bạn không nói ngôn ngữ nào bạn đang sử dụng, nhưng ngôn ngữ trên sẽ hoạt động cho các dự án C ++.


Tôi không biết rằng có một cờ phủ định trong .gitignore. Mẹo hữu ích!
Jim Raden

6

Muộn đến bữa tiệc ở đây, nhưng tôi cũng thấy rằng tôi sử dụng như sau. Một số chỉ có thể hữu ích để ẩn các tệp nhạy cảm khi đẩy vào một điều khiển từ xa công cộng .

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

Phiên bản mới nhất không cần phải hủy bỏ rõ ràng nuget.exe
tofutim

@tofutim, phiên bản mới nhất của cái gì? git chính nó?
danludwig


4

Có một lối tắt trong Visual Studio, vì nó hỗ trợ Git out of the box vào năm 2015 trở lên. Đối với các giải pháp mới (hoặc một số không có .gitthư mục), hãy sử dụng các tính năng kiểm soát nguồn trong Solution Explorer :

Nhấp chuột phải vào giải pháp của bạn và chọn Add Solution to Source Control...mục trong menu bật lên.

Nó tự động khởi tạo .gitkho lưu trữ, thêm .gitignore những thứ cần thiết vào giải pháp của bạn và thậm chí cả .gitattributestệp (kết thúc dòng, v.v.).

Văn bản sẽ xuất hiện trong bảng điều khiển VS:

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

Làm xong!



3

Như được đề cập bởi một poster khác, Visual Studio tạo ra điều này như là một phần của .gitignore (ít nhất là cho MVC 4):

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

Vì dự án của bạn có thể là thư mục con của giải pháp của bạn và tệp .gitignore được lưu trữ trong thư mục gốc của giải pháp, nên điều này thực sự sẽ không chạm vào các tệp cơ sở dữ liệu cục bộ (Git nhìn thấy chúng tại projectfolder/App_Data/*.mdf). Để giải thích cho điều này, tôi đã thay đổi những dòng như vậy:

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

1
Trên thực tế, git cũng khớp các mẫu liên quan đến các thư mục con, trừ khi bạn bắt đầu chúng bằng " /", trong trường hợp đó chúng chỉ khớp các thứ trong cùng thư mục với .gitignoretệp.
SamB

0

Một số dự án có thể muốn thêm *.manifestvào tập tin phòng thu trực quangitignore.io của họ .

Đó là bởi vì một số thuộc tính dự án Visual Studio của các dự án mới được thiết lập để tạo tệp kê khai.

Xem " Thế hệ rõ nhất trong Visual Studio "

Nhưng nếu bạn đã tạo chúng và chúng ở trạng thái tĩnh (không thay đổi theo thời gian), thì nên xóa chúng khỏi .gitignoretệp.

Đó là những gì một dự án như Git cho Windows vừa làm (cho Git 2.24, Q4 2019)

Xem cam kết aac6ff7 (ngày 5 tháng 9 năm 2019) của tác giả Julian Schindelin ( dscho) .
(Được hợp nhất bởi Junio ​​C Hamano - gitster- trong cam kết 59438be , ngày 30 tháng 9 năm 2019)

.gitignore: dừng bỏ qua .manifestcác tập tin

Trên Windows, có thể nhúng siêu dữ liệu bổ sung vào một tệp thực thi bằng cách liên kết trong một "bảng kê khai", tức là một tài liệu XML mô tả các khả năng và yêu cầu (như phiên bản Windows tối thiểu hoặc tối đa).
Các tài liệu XML này dự kiến ​​sẽ được lưu trữ trong .manifestcác tệp.

Ít nhất một số phiên bản Visual Studio tự động tạo .manifesttệp khi không có tệp nào được chỉ định rõ ràng, do đó chúng tôi thường yêu cầu Git bỏ qua chúng.

Tuy nhiên, hiện tại chúng tôi có một .manifesttệp đẹp : compat/win32/git.manifest, vì vậy Visual Studio không tự động tạo tệp kê khai cho chúng tôi, chúng tôi cũng không muốn Git bỏ qua các .manifesttệp nữa.


0

Bạn có thể tạo hoặc chỉnh sửa tệp .gitignore cho repo của mình bằng cách đi tới chế độ xem Cài đặt trong Team Explorer, sau đó chọn Cài đặt kho lưu trữ. Chọn Chỉnh sửa cho .gitignore của bạn.

Nó tự động tạo các bộ lọc sẽ bỏ qua tất cả các thư mục xây dựng cụ thể của VS, v.v.

nhập mô tả hình ảnh ở đây

Thêm thông tin có một cái nhìn ở đây .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.