.gitignore für Visual Studio-Projekte und -Lösungen


1144

Welche Dateien sollte ich .gitignorebei der Verwendung von Git in Verbindung mit Visual Studio Solutions ( .sln) und Projects einfügen?



1
Ich habe dies zu einem Community-Wiki gemacht und alle vorhandenen Antworten in dem Beitrag zusammengefasst. Bitte tragen Sie bei, wie Sie es für richtig halten!
Martin Suchanek

12
Ich würde vorsichtig sein, wenn ich .exe und .pdb's ignoriere. Sie könnten versehentlich Werkzeuge ignorieren, die Sie mit Ihrer Quelle speichern (nant, nunit gui, etc ...).
James Gregory

2
@ Murki - sieht so aus ist die Antwort: coderjournal.com/2011/12/…
Ronnie Overby

7
Mit .slnDateien in überprüft, erhalten wir Lärm wie diffs -# Visual Studio 14 -VisualStudioVersion = 14.0.24720.0 +# Visual Studio 2013 +VisualStudioVersion = 12.0.31101.0 kann dies vermieden werden?
Jean Jordaan

Antworten:


592

Siehe die offizielle "Sammlung nützlicher .gitignore- Vorlagen" von GitHub .

Das .gitignorefür Visual Studio finden Sie hier:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore


8
Bitte beachten Sie. Diese Datei enthält einen Eintrag zum Ignorieren veröffentlichter Dateien. Wie auch immer die Regel geschrieben ist, sie ignoriert jeden Ordner, den Sie "Veröffentlichen" genannt haben, und ignoriert daher alles, was Sie darunter haben. Es zielt nicht speziell auf die Visual Studio-Ausgabe "Veröffentlichen" ab. Es wird es ignorieren, aber auch andere Dinge.
Rex Whitten

6
@starfighterxyz Wenn du denkst, dass es einen Fehler im Gitignore gibt, würde ich empfehlen, eine Pull-Anfrage zu erstellen.
Chronial

9
Nun, ich weiß nicht (genug?), Um zu sagen, dass es ein Fehler ist. Ich habe gerade Publish / als Controller-Namen und als Projektordnernamen verwendet. Ich denke, das ist nur ein Randfall. Nur etwas, um ein paar Stunden Ihres Lebens zu retten :)
Rex Whitten

2
@Learner, da diese in verschiedenen Dateien sind. Sie sollten diese zu Ihrem persönlichen globalen Gitignore hinzufügen, anstatt sie
einzuchecken

1
@ErikAronesty Sie können ein Problem oder eine PR auf dem Github-Repo erstellen. Wird *.useraber schon ignoriert, was beinhaltet .vcxproj.user.
Chronial

254

Es gibt ein Online-Tool, mit dem Sie .gitignore-Dateien basierend auf Ihrem Betriebssystem, Ihrer IDE, Ihrer Sprache usw. erstellen können. Besuchen Sie http://www.gitignore.io/ .

Geben Sie hier die Bildbeschreibung ein

Hier ist die Datei, die am 20.08.2014 für Visual Studio + Windows generiert wurde.

# 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

Im Idealfall wird eine Lizenz in die Datei aufgenommen. (Idealerweise wäre dies eine Lizenz, die in einem Unternehmensumfeld keine Fragen aufwirft.)
Evgeni Sergeev

Auch dies sollte haben .vs/, siehe hier: stackoverflow.com/a/31879242/1143274
Evgeni Sergeev

110

Ich verwende den folgenden .gitignore für C # -Projekte. Zusätzliche Muster werden nach Bedarf hinzugefügt.

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

2
Nicht einverstanden mit *.resharper. Dateien, die übereinstimmen, *.ReSharper.usersollten ignoriert werden, dies wird jedoch durch die *.userobige Regel berücksichtigt .
Drew Noakes

1
@DrewNoakes: Welche ReSharper-Dateien sollten Ihrer Meinung nach revisionsgesteuert sein?
Per Lundberg

4
@PerLundberg Ein erwägenswerter Grund ist, dass Sie Standardformatierungsoptionen für Projekte usw. konfigurieren und die Konfigurationsdateien mit dem Projekt speichern können. Wenn dies in Git ist, ist es für alle Benutzer von Resharper einfacher, das Projekt konsistent zu formatieren.
Marc

@DrewNoakes - Irgendwelche Vorschläge dazu bitte?
Xameeramir

44

Für diejenigen, die daran interessiert sind, was Microsoft in den Gitignore aufnehmen sollte, ist hier die Standardeinstellung, die Visual Studio 2013 RTMbeim Erstellen eines neuen Git-Repository automatisch generiert wird:

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

Siehe: Hinzufügen einer Standard-Gitignore-Datei auf MSDN


37

Während Sie Ihre NuGet-Datei packages.config behalten sollten, sollten Sie den Paketordner ausschließen:

#NuGet
packages/

Normalerweise speichere ich keine Binärdateien oder andere aus meiner Quelle generierte Elemente in der Quellcodeverwaltung. Hierzu gibt es jedoch unterschiedliche Meinungen. Wenn es Ihrem Build-System die Arbeit erleichtert, tun Sie es! Ich würde jedoch argumentieren, dass Sie diese Abhängigkeiten nicht versionieren, sodass sie nur Speicherplatz in Ihrem Repository beanspruchen. Meiner Meinung nach ist es eine bessere Lösung, die Binärdateien an einem zentralen Ort zu speichern und sich dann auf die Datei packages.config zu verlassen, um anzugeben, welche Version benötigt wird.


4
Möchte jemand näher erläutern, warum Sie den Paketordner ausschließen möchten? Ist es nicht sinnvoll, die Pakete einzuschließen, damit der Build-Server die Abhängigkeiten aufweist?
Joel Martinez

14
Es ist erwähnenswert, dass das NuGet-Team die Funktion "Paketwiederherstellung" für genau dieses Problem implementiert hat. Auf der NuGet-Site befindet sich ein Dokument, in dem die Funktion erläutert und ihre Verwendung in Visual Studio beschrieben wird.
Ajk

4
Wenn Sie Pakete ignorieren und die Wiederherstellung von Nuget-Paketen verwenden, ist es hilfreich, nuget.exe zuzulassen. Wenn jemand etwas herunterlädt, hilft dies VS zu erkennen, dass die Funktion für die Lösung aktiviert wurde: !NuGet.exe<- Ignorieren Sie diese Datei nicht.
Danludwig

Für diejenigen unter Ihnen, die AppHarbor verwenden, ist es erwähnenswert, dass das Ausschließen des Paketordners dazu führt, dass Ihr Build die Bereitstellung fehlschlägt :)
Joel Martinez

18

Ich ziehe es vor, Dinge nach Bedarf auszuschließen. Sie möchten nicht alles mit der Zeichenfolge "bin" oder "obj" im Namen ausschließen. Folgen Sie diesen zumindest mit einem Schrägstrich.

Folgendes beginne ich bei einem VS2010-Projekt:

bin/
obj/
*.suo
*.user

Und nur weil ich ReSharper benutze, auch das:

_ReSharper*

Zustimmen. Dies gilt auch für "Debug". Fügen Sie den abschließenden Schrägstrich hinzu, um zu vermeiden, dass Dateien mit Debug im Namen ignoriert werden.
John Korsnes

16

Ich verstehe, dass dies eine alte Frage ist, die immer noch Informationen teilt. In Visual Studio 2017 können Sie einfach mit der rechten Maustaste auf die Lösungsdatei klicken und Lösung zur Quellcodeverwaltung hinzufügen auswählen

Geben Sie hier die Bildbeschreibung ein

Dadurch werden Ihrem Quellordner zwei Dateien hinzugefügt.

  1. .gitattributes
  2. .gitignore

Dies ist der einfachste Weg.


11

In Visual Studio 2015 Update 3 und mit der heute (24.10.2016) aktualisierten Git-Erweiterung lautet der von Visual Studio generierte 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/

3
Ich habe diesen Teil geliebt: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

In Visual Studio 2015 Team Explorer> Lokale Git-Repositorys> Projekt> Einstellungen> Git> Repository-Einstellungen> Ignorieren und Attributdateien. Sie können Gitignore-Dateien mit Elementen hinzufügen, die in Visual Studio-Lösungen standardmäßig ignoriert werden sollten. Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


9

InstallShield wurde für die Build-Bereitstellung ignoriert. InstallShield ist die neue Richtung, in die Microsoft über Visual Studio Installer geht. Daher haben wir damit begonnen, es für alle neuen Projekte zu verwenden. Diese hinzugefügte Zeile entfernt die SingleImage-Installationsdateien. Andere InstallShield-Typen können unter anderem die DVD-Verteilung umfassen. Möglicherweise möchten Sie diese Verzeichnisnamen oder nur [Ee] xpress / hinzufügen, um zu verhindern, dass InstallShield LE-Bereitstellungsdateien in das Repo gelangen.

Hier ist unser .gitignore für VS2010 C # -Projekte, die Install Shield LE mit SingleImage-Bereitstellungen für das Installationsprogramm verwenden:

#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
Ich zitiere hier James Gregorys Kommentar: "Ich würde vorsichtig sein, wenn ich .exe und .pdb's ignoriere. Sie können versehentlich Werkzeuge ignorieren, die Sie mit Ihrer Quelle speichern (nant, nunit gui, etc ...). - James Gregory 21. Mai 10 um 13:32 "
Jim Raden

1
Nicht einverstanden mit *.resharper. Dateien, die übereinstimmen, *.ReSharper.usersollten ignoriert werden, dies wird jedoch durch die *.userobige Regel berücksichtigt .
Drew Noakes

Nur eine Klarstellung - es geht tatsächlich zurück zu InstallShield, das vor dem VisualStudio-Installationsprogramm existierte, zumindest schon 1998!
Mathieson

7

Ich weiß, dass dies ein alter Thread ist, aber für die neuen und die alten, die diese Seite besuchen, gibt es eine Website namens gitignore.io, die diese Dateien generieren kann. Suchen Sie bei der Landung auf der Website nach "visualstudio" und es werden diese Dateien für Sie generiert. Außerdem können mehrere Sprachen / IDs Dateien ignorieren, die in einem Dokument verkettet sind.

Wunderschönen.


6

Hier ist ein Auszug aus einem .gitignoreaktuellen Projekt, an dem ich gearbeitet habe. Ich habe diejenigen extrahiert, von denen ich glaube, dass sie mit Visual Studio zusammenhängen, einschließlich der Kompilierungsausgaben. Da es sich um ein plattformübergreifendes Projekt handelt, gibt es verschiedene andere Ignorierregeln für Dateien, die von anderen Buildsystemen erstellt wurden, und ich kann nicht garantieren, dass ich sie genau getrennt habe.

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

Vielleicht sollte diese Frage Community Wiki sein, damit wir alle zusammen eine Hauptliste mit Kommentaren darüber bearbeiten können, welche Dateien für welche Projekttypen ignoriert werden sollten?


Siehe James Gregorys Kommentar zu einer anderen Antwort: "Ich würde vorsichtig sein, wenn ich .exe und .pdb's ignoriere. Sie können versehentlich Werkzeuge ignorieren, die Sie mit Ihrer Quelle speichern (nant, nunit gui, etc ...). - James Gregory 21. Mai 10 um 13:32 "
Jim Raden

2
@JimRaden Im Allgemeinen ist es am besten, das Einchecken von Binärwerkzeugen in Git zu vermeiden. Best Practices bestehen darin, nur Ihre Quelle bei Git einzuchecken. Wenn Sie binäre Tools benötigen, fügen Sie ein Skript für deren Installation oder ein Submodul mit nur diesen Tools hinzu.
Brian Campbell

6

Dank an Jens Lehmann für diesen Fall: Wenn Sie die Quellverzeichnisse von Ihren Compiler-Projektdateien trennen und die Ausgabe erstellen, können Sie Ihren .gitignore vereinfachen, indem Sie ihn negieren:

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

Sie sagen nicht, welche Sprache (n) Sie verwenden, aber die oben genannten sollten für C ++ - Projekte funktionieren.


Ich wusste nicht, dass es in .gitignore eine Negationsflagge gibt. Hilfreicher Tipp!
Jim Raden

6

Spät zur Party hier, aber ich finde auch, dass ich folgendes benutze. Einige sind möglicherweise nur nützlich, um vertrauliche Dateien auszublenden, wenn Sie auf eine öffentliche Fernbedienung übertragen.

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

Die neueste Version muss nuget.exe
tofutim

@tofutim, die neueste Version von was? git selbst?
Danludwig


4

In Visual Studio gibt es eine Verknüpfung , da Git ab 2015 sofort einsatzbereit ist. .gitVerwenden Sie für neue Lösungen (oder für Lösungen ohne Ordner) die Quellcodeverwaltungsfunktionen im Projektmappen-Explorer :

Klicken Sie mit der rechten Maustaste auf Ihre Lösung und wählen Sie Add Solution to Source Control...im Popup-Menü einen Eintrag aus.

Es initialisiert das .gitRepository automatisch , fügt .gitignore Ihrer Lösung und sogar der .gitattributesDatei (Zeilenenden usw.) die erforderlichen Elemente hinzu .

Der Text wird in der VS-Konsole angezeigt:

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

Erledigt!


3

Hier ist , was ich in meinen .NET - Projekten verwende für meine .gitignoreDatei.

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

Dies ist so ziemlich ein All-MS-Ansatz, der den integrierten Visual Studio-Tester verwendet, und ein Projekt, das möglicherweise auch einige TFS-Bindungen enthält.


3

Wie in einem anderen Poster erwähnt, generiert Visual Studio dies als Teil seines .gitignore (zumindest für MVC 4):

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

Da Ihr Projekt möglicherweise ein Unterordner Ihrer Lösung ist und die .gitignore-Datei im Lösungsstamm gespeichert ist, werden die lokalen Datenbankdateien dadurch nicht berührt (Git sieht sie unter projectfolder/App_Data/*.mdf). Um dies zu berücksichtigen, habe ich diese Zeilen folgendermaßen geändert:

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

1
Tatsächlich stimmt git auch mit Mustern relativ zu Unterverzeichnissen überein, es sei denn, Sie beginnen sie mit " /". In diesem Fall stimmen sie nur mit Dingen im selben Verzeichnis wie die .gitignoreDatei überein .
SamB

0

Einige Projekte möchten möglicherweise *.manifestzu ihrer Visual Studio- gitignore.ioDatei hinzufügen .

Dies liegt daran, dass einige Visual Studio-Projekteigenschaften neuer Projekte so festgelegt sind, dass eine Manifestdatei generiert wird.

Siehe " Manifestgenerierung in Visual Studio "

Wenn Sie sie jedoch generiert haben und sie statisch sind (sich im Laufe der Zeit nicht ändern), ist es eine gute Idee, sie aus der .gitignoreDatei zu entfernen .

Genau das hat ein Projekt wie Git für Windows getan (für Git 2.24, Q4 2019).

Siehe Commit aac6ff7 (05. September 2019) von Johannes Schindelin ( dscho) .
(Zusammengeführt von Junio ​​C Hamano - gitster- in Commit 59438be , 30. September 2019)

.gitignore: Hören Sie auf, .manifestDateien zu ignorieren

Unter Windows ist es möglich, zusätzliche Metadaten in eine ausführbare Datei einzubetten, indem Sie sie in ein "Manifest" einbinden, dh in ein XML-Dokument, das Funktionen und Anforderungen beschreibt (z. B. minimale oder maximale Windows-Version).
Es wird erwartet, dass diese XML-Dokumente in .manifestDateien gespeichert werden.

Zumindest einige Visual Studio-Versionen generieren .manifestDateien automatisch, wenn keine explizit angegeben ist. Daher haben wir Git gebeten, sie zu ignorieren.

Wir haben jetzt jedoch eine schöne .manifestDatei: compat/win32/git.manifestVisual Studio generiert weder automatisch ein Manifest für uns, noch möchten wir, dass Git die .manifestDateien mehr ignoriert .


0

Sie können Ihre Gitignore-Datei für Ihr Repo erstellen oder bearbeiten, indem Sie im Team Explorer zur Ansicht "Einstellungen" wechseln und dann "Repository-Einstellungen" auswählen. Wählen Sie Bearbeiten für Ihren .gitignore.

Es werden automatisch Filter erstellt, die alle VS-spezifischen Build-Verzeichnisse usw. ignorieren.

Geben Sie hier die Bildbeschreibung ein

Weitere Infos finden Sie hier .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.