Meer informatie over .gitignore

Stappen in de Systematische Probleem Aanpak

1. Doel

Het primaire doel van het opnemen van .gitignore bestanden is het uitsluiten van mappen en bestanden van een commit.

2. Subdoelen

  • Het opnemen van .gitignore bestanden in het project.
  • Het controleren van de werking van de opgenomen .gitignore bestanden.

3. Fasen

  1. Bestanden uitsluiten Door een specifieke bestandsnaam op te nemen in .gitignore wordt het bestand genegeerd.

Codevoorbeeld - bestand uitsluiten

secrets.json        # Exact het bestand 'secrets.json'
  1. Bestanden uitsluiten volgens een glob patroon
    Een glob is een notatie om patroon vast te leggen waarmee elk bestand of map wordt vergelijken. Als er een match is dan wordt het bestand genegeerd.
*.dll               # Alle .dll-bestanden (in alle mappen)
*.exe               # Alle .exe-bestanden (in alle mappen)
*.log               # Alle .log-bestanden (in alle mappen)
*.pdb               # Alle .pdb-bestanden (in alle mappen)
  1. Mappen en submappen uitsluiten
    Door een ’/’ toe te voegen aan de mapnaam wordt de map en alle submappen genegeerd.

Codevoorbeeld

bin/                # De map 'bin' en alles daarin
obj/                # De map 'obj' en alles daarin
.nuget/             # De map '.nuget' en alles daarin
packages/           # De map 'packages' en alles daarin
platforms/          # De map 'platforms' en alles daarin
.vs/                # De Visual Studio-map en alles daarin

Hierna een compleet voorbeeld van een `.gitignore voor .NET en MAUI.

Codevoorbeeld - .gitignore voorbeeld .NET en MAUI

# Visual Studio-specifieke bestanden
.vs/                # Visual Studio tijdelijke bestanden en instellingen
*.user              # Gebruikersspecifieke projectinstellingen
*.suo               # Solution User Options file
*.cache             # Cache bestanden
*.log               # Logbestanden
 
# Build-output en binairen
bin/                # Build output
obj/                # Object files en tijdelijke buildbestanden
*.dll               # Gecodeerde libraries
*.exe               # Uitvoerbare bestanden
*.pdb               # Debugging-informatie
*.ilk               # Incremental linker files
*.aps               # Visual Studio resource project files
*.nupkg             # NuGet package bestanden
 
# NuGet-specifieke bestanden
.nuget/             # NuGet package bestanden
packages/           # Afhankelijke packages
project.lock.json   # Lock-bestand voor packages (oudere versies)
package-lock.json   # Lock-bestand voor NPM packages
*.nuget.props       # NuGet build properties
*.nuget.targets     # NuGet build targets
 
# .NET MAUI en Xamarin-specifieke bestanden
platforms/          # Platformspecifieke buildbestanden (Android/iOS/macOS/Windows)
AppPackages/        # MAUI app packages
artifacts/          # Build artifacts
 
# Configuratie- en omgeving bestanden
*.config            # Configuratiebestanden
*.ini               # Initialisatiebestanden
*.env               # Gevoelige omgevingsvariabelen
secrets.json        # Gevoelige configuraties
 
# macOS-specifieke bestanden
.DS_Store           # macOS systeembestanden
  1. Controleren werking .gitignore
    Voor een specifiek bestand gebruik je:
    git check-ignore -v bestandsnaam.

Voor alle bestanden en mappen die nog niet door git zijn getrackt:
git ls-files --ignored --exclude-standard --others.

Uitleg van de opties:
--ignored Toont alleen bestanden en mappen die worden genegeerd.
--exclude-standard Houdt rekening met .gitignore, .git/info/exclude en standaard Git-uitsluitingen.
--others Laat alleen bestanden en mappen zien die nog niet zijn getrackt door Git.

Voor alle bestanden en mappen, ook die zijn toegevoegd aan git:
git check-ignore -v **/*

Het komt voor dat bestanden al zijn toegevoegd aan een commit terwijl nadien de .gitignore wordt aangepast en moeten worden toegepast Dit kan op de volgende wijze:

git rm -r --cached .
git add .
git commit -m "Update .gitignore"