06 December 2011 GIT, gitignore, HowTo, Source Control Systeme Robert Muehsig

Visual Studio produziert einige Dateien, welche man nicht in sein Source Control System haben sollte: Zum einen sind es Dateien, welche vom Betriebssystem automatisch erstellt werden (Thumbs.db), von diversen Tools (Resharper ahoi!) oder auch den lokalen Build-Output.

Da ich gerade etwas mit Git experimentiere, hier mal meine Erkenntnisse (bei Denkfehlern meinerseits bitte einfach einen Kommentar hinterlassen :) )

Die .gitignore Datei

Über dieses Datei kann man steuern, welche Dateien git tracken soll und welche nicht. Der Aufbau ist eigentlich simpel, aber irgendwie auch etwas konfus (IMHO ;) ).

Meine .gitignore Datei (für meine Demosourcen auf Google Code) :

# Visual Studio Files and security files
######################
*.suo
*.user
*.cache
*.Publish.xml
_ReSharper.*

# Build Outputs
######################
bin/
obj/

# OS generated files #
######################
Thumbs.db

 

Der erste Block sind alles User-bezogene Dateien, welche Visual Studio oder Resharper erstellt. Die Build Outputs entferne ich im zweiten Teil und die Thumbs.db fliegt auch weg.

Anlegen der .gitignore Datei in Windows

Windows hat sich beim Anlegen einer “Namenlosen” .gitignore Datei etwas zickig, aber über Notepad++ auch kein Hürde.

Sobald man das File im Stammverzeichnis des Projekts hat, werden überflüssige Dateien nicht mehr eingecheckt.

Wie kann man bereits eingecheckte und getrackte Dateien wieder löschen?

Auf Stackoverflow hab ich mehrere Varianten gefunden, diese hat für mich funktioniert:

git add .gitignore
git commit -m "New .gitignore file"
git rm -r --cached .
git add .
git commit -m "Clean checkin"

 

In diesem Sinne:

image


Written by Robert Muehsig

Software Developer - from Dresden, Germany, now living & working in Switzerland. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de

If you like the content and want to support me you could buy me a beer or a coffee via Litecoin or Bitcoin - thanks for reading!