Git mit Visual Studio
In diesem Artikel zeige ich wie man Git mit Visual Studio verwendet. Versionsverwaltung ist bei Software Projekten heute Standard und so bietet Visual Studio 2017 die Integration von verschiedenen Systemen an. Neben der Standardanbindung an Microsofts Team Foundation Server ist auch das beliebte Git mit dabei.
Git mit Visual Studio
Im geöffneten Projekt findet man rechts unten im Visual Studio Fenster die Quellcodeverwaltung. Über einen Klick werden die verfügbaren Systeme zur Versionierung angezeigt.
Git muss in diesem Fall bereits installiert sein. Fehlt bei euch die Option, dann kann man Git von der offiziellen Download Seite laden. Visual Studio öffnet nun das Team Explorer Fenster:
Visual Studio bietet uns nun zwei Möglichkeiten an. Wir können den Code an das Visual Studio Team Service (heißt nun Azure DevOps) an die Azure Cloud übertragen oder wir können ein eigenes Remoterepository angeben. Ein solches Remoterepository kann man bei jedem ordentlichen Hoster auf einem Server einrichten, alternativ könnt ihr einen Rechner damit im eigenen Netzwerk laufen lassen. Der Raspberry Pi würde sich dafür eignen.
Remoterepository einrichten
In meinem Beispiel liegt das Remoterepository auf einem Linux Server. Dieser ist per SSH ohne Passwort per Kommandozeile zu erreichen. An einem beliebigen Ort erstellen wir uns einen neuen Ordner und legen dort ein neues Git Projekt an:
mkdir projekt.git cd projekt.git git init
Ich benenne meine Ordner in denen Git Projekte liegen immer mit einem .git am Ende. Das ist keine Dateiendung! sondern ein Ordnername. Auf dem Server muss zu diesem Zeitpunkt bereits Git installiert sein. Falls das noch nicht der Fall ist, unter Linux funktioniert das meist so (Ubuntu, Debian, …):
apt-get install git
Wir haben nun ein entferntes Repository eingerichtet. Wir werden nun Visual Studio so einrichten, dass es die lokale Codebasis mit dem entfernten Repository abgleicht. Das bedeutet wir haben den Code versioniert im Git und das lokal auf der Workstation mit Visual Studio und auf einem entfernten Entwicklungsserver. Arbeiten mehrere Kollegen am Projekt, so dient das Repository am Entwicklungsserver als gemeinsame Codebasis, arbeitet man alleine hat man zumindest den Code extern gespeichert und vor Datenverlust abgesichert (der Server sollte zudem regelmäßige Backups haben).
Visual Studio mit Git verwenden
Die größte Hürde für die meisten Nutzer ist vermutlich nun die korrekte URL zum Git Repository im Visual Studio Team Explorer anzugeben. Die URL lautet:
ssh://BENUTZERNAME@SERVER:/ABSOLUTERPFADZUMORDNER
zum Beispiel könnte das so aussehen:
ssh://hansi@domain.com:/var/www/projekte/projekt.git
Der Pfad nach der Domain ist nicht absolut, er beginnt ab dem Ordner in dem man nach dem Login über ssh landet, wird also meistens das Benutzerverzeichnis am Server sei. Sollte man sich über SSH nicht mit einem SSH Key einloggen können muss bei jedem Abgleich das Passwort angegeben werden. Das ist mühsam, weshalb ich dringend einen SSH-Key Login empfehle.
Nach einem Klick auf Veröffentlichen wird das Repository mit dem entfernen Repository abgeglichen.
Probleme
Bis Git endlich mal läuft gibt es hin und wieder mal Probleme zu lösen. Der Klassiker ist das nicht erreichbare Remote Repository:
Host key verification failed.
Could not read from remote repository.
in diesem Fall stimmt entweder die Git URL nicht oder Visual Studio kann sich über SSH nicht mit dem Key anmelden. Deshalb sollte man:
- Git URL prüfen
gibt es den Pfad am Server? Sind die Zugriffsrechte ok? Man kann mit einem externen Tool wie Git Bash oder Git GUI die Verbindung mit eventuell spezifischeren Fehlermeldungen probieren. - SSH Login prüfen
funktioniert der SSH Login ohne Passwort?
Falls man die Git URL ändern möchte, dann steht man vor dem Problem, dass man die Einstellung dazu nicht findet. Visual Studio ist auf Produktivität optimiert, weshalb man grundlegende Einstellungen oft schwer findet. Unter den Einstellungen des Projekts im Team Explorer
und in den Repositoryeinstellungen der gesuchte Git URL Parameter
Sobald die Verbindung passt kann es zu einem weiteren Fehler kommen – der Push ans remote Git schlägt fehl:
rejected master -> master (branch ist currently checked out).
In diesem Fall muss man am Entwicklungsserver im Projektordner (dort wo .git liegt) folgendes eingeben:
git config --bool core.bare true
Nun ist der Push erfolgreich:
Fazit
Git mit Visual Studio 2017 bringt die beliebte Versionsverwaltung nun auch in die Microsoft Welt. Über den Team Explorer kann man seine Repositories entweder auf der Azure Cloud, einem Team Foundation Server oder einem beliebig gehosteten Git Repository (auf einem Linux Hoster oder Raspberry Pi) verwenden. Projektversionierung ist damit recht einfach. Man kann gemeinsam am Projekt arbeiten und der Quellcode ist stets sicher vor Datenverlust.