.gitignore dla projektów i rozwiązań Visual Studio

1144

Jakie pliki powinienem dołączyć .gitignore, używając Git w połączeniu z Visual Studio Solutions ( .sln) i Projektami?

nik.shornikov
źródło
3
Powiązane pytanie: stackoverflow.com/questions/72298/...
Greg Hewgill
1
Zrobiłem to w wiki społeczności i skonsolidowałem wszystkie istniejące odpowiedzi w poście. Prosimy wnieść swój wkład według własnego uznania!
Martin Suchanek
12
Byłbym ostrożny, ignorując pliki .exe i .pdb, możesz przypadkowo zignorować narzędzia przechowywane w źródle (nant, nunit gui itp.).
James Gregory
2
@murki - wygląda na to, że to jest odpowiedź: coderjournal.com/2011/12/…
Ronnie Overby
7
Po zarejestrowaniu .slnplików otrzymujemy różnice szumów, takie jak -# Visual Studio 14 -VisualStudioVersion = 14.0.24720.0 +# Visual Studio 2013 +VisualStudioVersion = 12.0.31101.0 Czy można tego uniknąć?
Jean Jordaan,

Odpowiedzi:

592

Zobacz „Zbiór przydatnych szablonów .gitignore w oficjalnym serwisie GitHub .

Program .gitignoreVisual Studio można znaleźć tutaj:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

Chronial
źródło
8
Proszę zanotować. Ten plik zawiera wpis, aby zignorować opublikowane pliki. Jednak sposób, w jaki reguła jest napisana, zignoruje każdy folder, który nazwałeś „Publikuj”, a zatem zignoruje wszystko, co masz pod nim. Nie jest specjalnie ukierunkowany na wynik „Publishing” programu Visual Studio. Zignoruje to, ale także inne rzeczy.
Rex Whitten,
6
@starfighterxyz, jeśli uważasz, że w gitignore jest błąd, polecam utworzenie żądania ściągnięcia.
Chronial
9
Nie wiem (wystarczająco?), Żeby powiedzieć, że to błąd. Tak się składa, że ​​używam Publish / jako nazwy kontrolera i jako nazw folderów projektu. Myślę, że to tylko skrajna sprawa. Tylko coś, aby zaoszczędzić kilka godzin swojego życia :)
Rex Whitten
2
@ Uczeń, ponieważ są one w różnych plikach. Powinieneś dodać je do swojego osobistego globalnego gitignore, zamiast sprawdzać je. Github.com/github/gitignore/tree/master/Global
Chronial
1
@ErikAronesty możesz utworzyć problem lub PR na repozytorium github. Ale *.userjest już ignorowany, co obejmuje .vcxproj.user.
Chronial
254

Istnieje narzędzie online, które pozwala wygenerować plik .gitignore na podstawie systemu operacyjnego, IDE, języka itp. Spójrz na http://www.gitignore.io/ .

wprowadź opis zdjęcia tutaj

8/20/2014 tutaj jest plik, który jest generowany dla 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
Martin
źródło
Idealnie byłoby, gdyby zawierała licencję w pliku. (Idealnie byłaby to licencja, która nie budzi żadnych pytań w środowisku korporacyjnym.)
Evgeni Sergeev
Powinno to również mieć .vs/, patrz tutaj: stackoverflow.com/a/31879242/1143274
Evgeni Sergeev
110

Używam następującego .gitignore dla projektów w C #. Dodatkowe wzory są dodawane, gdy są potrzebne.

[Oo]bj
[Bb]in
*.user
*.suo
*.[Cc]ache
*.bak
*.ncb
*.log 
*.DS_Store
[Tt]humbs.db 
_ReSharper.*
*.resharper
Ankh.NoLoad
Lachlan Roche
źródło
2
Nie zgadzam się z *.resharper. Dopasowywanie plików *.ReSharper.usernależy zignorować, ale odpowiada to *.userpowyższa reguła.
Drew Noakes,
1
@DrewNoakes: Jakie są pliki ReSharper, które Twoim zdaniem powinny być kontrolowane w wersji?
Per Lundberg,
4
@PerLundberg Jednym z powodów wartych rozważenia jest to, że możesz skonfigurować standardowe opcje formatowania projektu itp. I zapisać pliki konfiguracyjne z projektem. Jeśli tak jest, to ułatwia wszystkim używającym Resharper utrzymanie spójnego formatowania projektu.
Marc
@DrewNoakes - jakieś sugestie to proszę?
xameeramir,
44

Dla osób zainteresowanych tym, co według Microsoft powinno znaleźć się w gitignore, oto domyślny, który Visual Studio 2013 RTMautomatycznie generuje się podczas tworzenia nowego repozytorium Git:

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

Zobacz: Dodaj domyślny plik .gitignore do MSDN

Mobiletainment
źródło
37

Chociaż powinieneś zachować plik NuGet packages.config, powinieneś wykluczyć folder pakietów:

#NuGet
packages/

Zwykle nie przechowuję plików binarnych ani niczego generowanego z mojego źródła w kontroli źródła. Istnieją jednak różne opinie na ten temat. Jeśli to ułatwi system kompilacji, zrób to! Chciałbym jednak argumentować, że nie wersjonujesz tych zależności, więc zajmą one miejsce w twoim repozytorium. Przechowywanie plików binarnych w centralnej lokalizacji, a następnie poleganie na pliku packages.config w celu wskazania, która wersja jest potrzebna, jest moim zdaniem lepszym rozwiązaniem.

sgriffinusa
źródło
4
ktoś chciałby wyjaśnić, dlaczego chcesz wykluczyć folder paczek? czy nie ma sensu dołączanie pakietów, aby serwer kompilacji miał zależności?
Joel Martinez
14
Warto zauważyć, że zespół NuGet zaimplementował funkcję „przywracania pakietu” właśnie dla tego problemu. Na stronie NuGet znajduje się dokument, który wyjaśnia tę funkcję i opisuje, jak z niej korzystać w Visual Studio.
ajk
4
Jeśli zignorujesz pakiety i użyjesz przywracania pakietu nuget, pomocne jest zezwolenie na nuget.exe. Gdy ktoś pobiera, mówi to VS pomaga stwierdzić, że funkcja została włączona dla rozwiązania: !NuGet.exe<- nie ignoruj ​​tego pliku.
danludwig
Dla tych z was, którzy korzystają z AppHarbor, warto zauważyć, że wykluczenie folderu pakietów spowoduje, że twoja kompilacja zakończy się niepowodzeniem :)
Joel Martinez
18

Wolę wykluczyć rzeczy według potrzeb. Nie chcesz, aby strzelba wykluczała wszystko z ciągiem „bin” lub „obj” w nazwie. Przynajmniej pamiętaj, aby podążać za nimi z cięciem.

Oto, od czego zaczynam od projektu VS2010:

bin/
obj/
*.suo
*.user

I tylko dlatego, że używam ReSharper, również to:

_ReSharper*
Eben Geer
źródło
Zgodzić się. Dotyczy to również „debugowania”. Dodaj do tego ukośnik, aby uniknąć ignorowania plików z debugowaniem w nazwie.
John Korsnes,
16

Rozumiem, że to stare pytanie, wciąż dzielące się informacjami. W programie Visual Studio 2017 wystarczy kliknąć prawym przyciskiem myszy plik rozwiązania i wybrać opcję Dodaj rozwiązanie do kontroli źródła

wprowadź opis zdjęcia tutaj

Spowoduje to dodanie dwóch plików do folderu źródłowego.

  1. .gitattributes
  2. .gitignore

To jest najłatwiejszy sposób.

Sibeesh Venu
źródło
11

W Visual Studio 2015 Update 3 oraz z rozszerzeniem Git zaktualizowanym na dzień dzisiejszy (24.10.2016) .gitignore generowany przez Visual Studio to:

## 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/
Rui Bruno Mendes
źródło
3
Uwielbiałem tę część: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

W Visual Studio 2015 Team Explorer> Lokalne repozytoria Git> Projekt> Ustawienia> Git> Ustawienia repozytorium> Ignoruj ​​i atrybutuj pliki. Plik .gitignore z elementami można domyślnie ignorować w rozwiązaniach Visual Studio. wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Hamed Mahdizadeh
źródło
9

Dodane InstallShield ignoruje wdrożenie kompilacji. InstallShield to nowy kierunek, w którym Microsoft kieruje się nad Visual Studio Installer, więc zaczęliśmy go używać we wszystkich nowych projektach. Ten dodany wiersz usuwa pliki instalacyjne SingleImage. Inne typy InstallShield mogą obejmować między innymi dystrybucję DVD. Możesz dodać te nazwy katalogów lub po prostu [Ee] xpress /, aby zapobiec przedostawaniu się plików repozytorium z plików instalacyjnych InstallShield LE.

Oto nasz .gitignore dla projektów VS2010 C # przy użyciu Install Shield LE z wdrożeniami SingleImage dla instalatora:

#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
~$*
Charleston Software Associates
źródło
1
Cytuję tutaj komentarz Jamesa Gregory'ego: „Byłbym ostrożny, ignorując pliki .exe i .pdb, możesz przypadkowo zignorować narzędzia przechowywane w źródle (nant, nunit gui itp.). - James Gregory, 21 maja 2010 r. O 13:32 "
Jim Raden,
1
Nie zgadzam się z *.resharper. Dopasowywanie plików *.ReSharper.usernależy zignorować, ale odpowiada to *.userpowyższa reguła.
Drew Noakes,
Tylko wyjaśnienie - w rzeczywistości przenosi się Z POWROTEM do InstallShield, który istniał wcześniej niż instalator VisualStudio, przynajmniej w 1998 roku!
Mathieson,
7

Wiem, że to stary wątek, ale dla nowych i starych, którzy odwiedzają tę stronę, istnieje strona internetowa o nazwie gitignore.io, która może generować te pliki. Po wylądowaniu na stronie przeszukaj „visualstudio”, a pliki te zostaną dla Ciebie wygenerowane, możesz też ignorować pliki w wielu językach / idach połączone w jeden dokument.

Piękny.

Opster Elasticsearch - Nathan
źródło
6

Oto fragment .gitignorenajnowszego projektu, nad którym pracowałem. Wyodrębniłem te, które moim zdaniem są powiązane z Visual Studio, w tym wyniki kompilacji; jest to projekt wieloplatformowy, więc istnieją różne inne zasady ignorowania plików wytwarzanych przez inne systemy kompilacji i nie mogę zagwarantować, że je dokładnie rozdzieliłem.

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

Być może to pytanie powinno być Wiki Społeczności, abyśmy wszyscy mogli wspólnie edytować jedną główną listę z komentarzami na temat tego, które pliki należy zignorować dla jakiego rodzaju projektu?

Brian Campbell
źródło
Zobacz komentarz Jamesa Gregory'ego do innej odpowiedzi: „Byłbym ostrożny, ignorując pliki .exe i .pdb, możesz przypadkowo zignorować narzędzia przechowywane w źródle (nant, nunit gui itp.). - James Gregory 21 maja 2010 o 13:32 "
Jim Raden
2
@JimRaden Ogólnie rzecz biorąc, najlepiej unikać sprawdzania narzędzi binarnych w Git. Najlepsze praktyki to sprawdzanie tylko źródła w Git; jeśli potrzebujesz narzędzi binarnych, dołącz skrypt do ich instalacji lub submoduł tylko z tymi narzędziami.
Brian Campbell,
6

Podziękowania dla Jensa Lehmanna za ten - jeśli trzymasz katalogi źródłowe oddzielnie od plików projektu kompilatora i kompilujesz dane wyjściowe, możesz uprościć swój .gitignore, negując go:

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

Nie mówisz, jakich języków używasz, ale powyższe powinno działać w projektach C ++.

Steve Folly
źródło
Nie wiedziałem, że w .gitignore jest flaga zaprzeczenia. Pomocna wskazówka!
Jim Raden,
6

Późno na imprezę tutaj, ale okazuje się, że używam następujących. Niektóre mogą być przydatne tylko do ukrywania poufnych plików podczas wypychania na publiczny pilot.

#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/
Danludwig
źródło
Najnowsza wersja nie musi jawnie anulować nuget.exe
tofutim
@tofutim, najnowsza wersja tego? sam sobie
danludwig
4

W programie Visual Studio istnieje skrót , ponieważ obsługuje on Git po wyjęciu z pudełka w 2015 r. Lub nowszej wersji. W przypadku nowych rozwiązań (lub niektórych, które nie mają .gitfolderów) użyj funkcji kontroli źródła w Eksploratorze rozwiązań :

Kliknij rozwiązanie prawym przyciskiem myszy i wybierz Add Solution to Source Control...pozycję z menu podręcznego.

Automatycznie inicjuje .gitrepozytorium, dodaje .gitignore niezbędne elementy do twojego rozwiązania, a nawet .gitattributesplik (zakończenia linii itp.).

Tekst pojawi się w konsoli VS:

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

Gotowy!

DenisKolodin
źródło
3

Oto, czego używam w moich projektach .NET dla mojego .gitignorepliku.

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

Jest to podejście oparte wyłącznie na MS, które korzysta z wbudowanego testera Visual Studio oraz projektu, który może zawierać również pewne powiązania TFS.

Nick Berardi
źródło
3

Jak wspomniano w innym plakacie, Visual Studio generuje to jako część swojego .gitignore (przynajmniej dla MVC 4):

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

Ponieważ twój projekt może być podfolderem twojego rozwiązania, a plik .gitignore jest przechowywany w katalogu głównym rozwiązania, tak naprawdę nie dotknie on plików lokalnej bazy danych (Git je widzi projectfolder/App_Data/*.mdf). Aby to uwzględnić, zmieniłem następujące wiersze:

# SQL Server files
*App_Data/*.mdf
*App_Data/*.ldf
StevenClontz
źródło
1
W rzeczywistości git dopasowuje wzorce również do podkatalogów, chyba że zaczynasz je od „ /”, w którym to przypadku pasują tylko do rzeczy w tym samym katalogu co .gitignoreplik.
SamB
0

Niektóre projekty mogą chcieć dodać *.manifest do pliku Visual Studiogitignore.io .

Jest tak, ponieważ niektóre właściwości nowych projektów Visual Studio są ustawione do generowania pliku manifestu.

Widzieć " Generowanie manifestu w Visual Studio

Ale jeśli je wygenerowałeś i są one statyczne (nie zmieniają się w czasie), dobrym pomysłem jest ich usunięcie z .gitignorepliku.

Tak właśnie wygląda projekt właśnie zrobił Git dla Windows (dla Git 2.24, czwarty kwartał 2019)

Zobacz commit aac6ff7 (05 września 2019) autor: Johannes Schindelin ( dscho) .
(Połączone przez Junio ​​C Hamano - gitster- w commit 59438be , 30 września 2019)

.gitignore: przestań ignorować .manifest pliki

W systemie Windows można osadzić dodatkowe metadane w pliku wykonywalnym, łącząc się z „manifestem”, tj. Dokumentem XML opisującym możliwości i wymagania (takie jak minimalna lub maksymalna wersja systemu Windows).
Te dokumenty XML powinny być przechowywane w.manifest plikach.

Przynajmniej niektóre wersje programu Visual Studio automatycznie generują .manifestpliki, gdy żaden nie jest wyraźnie określony, dlatego poprosiliśmy Gita o ich zignorowanie.

Mamy jednak .manifestteraz piękny plik: compat/win32/git.manifestwięc ani Visual Studio nie generuje dla nas manifestu, ani nie chcemy, aby Git już ignorował .manifestpliki.

VonC
źródło
0

Możesz utworzyć lub edytować plik .gitignore dla repozytorium, przechodząc do widoku Ustawienia w Team Explorer, a następnie wybierając Ustawienia repozytorium. Wybierz Edytuj dla swojego .gitignore.

Automatycznie tworzy filtry, które będą ignorować wszystkie katalogi kompilacji specyficzne dla VS itp.

wprowadź opis zdjęcia tutaj

Więcej informacji tutaj .

CharithJ
źródło