Ich verwende git for Windows zusammen mit PuTTY.

Download

Für die Installation werden dementsprechend zunächst git for Windows und PuTTY benötigt.

Installation

Ich empfehle, zunächst Putty zu installieren, und zwar am ehesten unter Verwendung des Windows-Installers. Danach kann die Installation von git for Windows beginnen.

Die Beschreibung wurde zuletzt für die Version 2.49.0 aktualisiert.

Im Verlauf des Installationsprozesses sind dann einige Fragen zur (Erst-) Konfiguration zu beantworten.

Wurde git bereits einmal installiert, werden nach Anhaken der Option "Only show new options" nur Optionen angezeigt, die neu hinzugekommen sind, und ansonsten die bei der Erstinstallation ausgewählten Parameter übernommen. Soll eine Auswahl geändert werden, kann der Installer einfach noch einmal gestartet werden; in diesem Fall sollte man den Haken bei "Only show new options" freilich nicht setzen. Nach dem erneuten Durchlaufen des Installers werden dann nur die Konfigurationsänderungen übernommen.

Auswahl der zu installierenden Komponenten

screenshot

Screenshot: Auswahl der zu installierenden Komponenten

Zusätzlich ausgewählt werden können hier

  • Desktop-Icons,
  • die Aufnahme von Git Bash und Git GUI ins Kontext-Menü des Windows-Explorers,
  • Unterstützung für Git Large File Storage,
  • die Verknüpfung von .gitignore und vergleichbaren Dateien mit dem Windows-Standard-Editor (normalerweise Notepad),
  • die Verknüpfung von .sh-Dateien mit der Bash,
  • die tägliche Suche nach Updates,
  • ein Profil für das neue Windows Terminal, so dass die Git Bash dort als Tab angeboten wird, und
  • Scalar, ein Tool zum Management großer Repositories.

Auswahl des Standard-Editors für git

screenshot

Screenshot: Auswahl des Standard-Editors

Für Commit-Messages und ähnliche Zwecke startet git einen Editor; standardmäßig ist das vim. Ich habe diese Einstellung so belassen, aber der eine oder andere möchte stattdessen vielleicht einen anderen Editor auswählen wie Notepad++ oder Sublime Text.

Bezeichnung des Standard-Branch

screenshot

Screenshot: Auswahl des Standard-Editors

Üblicherweise heißt der Standard-Branch, der in jedem neuen Repository angelegt wird, master (so wie bspw. trunk bei SVN). Da es Diskussionen um eine "inklusivere" Benennung gab (wer würde bei "Master" nicht direkt an Kolonialismus und Sklaverei denken?), wird sich diese Voreinstellung möglicherweise in Zukunft ändern. Daher kann man die Benennung des Standard-Branches git überlassen oder - für die ganze Installation - eine andere Voreinstellung wählen.

Bereits bestehende Repositories sind von dieser Auswahl nicht betroffen.

Auswahl des Suchpfades für git

screenshot

Screenshot: Auswahl des Suchpfades

Standardmäßig wird git nur aus der Git Bash, also der mitgelieferten Terminalumgebun, gestartet. Hier können Sie den Suchpfad (PATH) so anpassen, dass entweder nur git oder auch alle mitgelieferten Tools auch von der normalen Windows-Kommandozeile aus gestartet werden können. Wenn Sie auch die Tools in den Suchpfad aufnehmen, stehen gleichnamige Windows- bzw. DOS-Tools nicht mehr zur Verfügung, weil das System dann zuerst die mit git mitgelieferten Tools findet.

Auswahl des SSH-Programms

screenshot

Screenshot: Auswahl des SSH-Programms

git unterstützt entweder das mitgelieferte OpenSSH für die Herstellung von SSH-Verbindungen oder bietet an, eine bereits bestehende oder gesondert installierte SSH-Variante zu verwenden. Zumindest dann, wenn Putty bereits installiert ist, sollte auch das entsprechende Kommandozeilen-Programm plink angeboten werden. Ggf. muss hier der passende Pfad angegeben werden, wenn der Installer ihn nicht von selbst findet.

Hier kann auch einfach die Standardeinstellung zur Verwendung des mitgelieferten OpenSSH ausgewählt und dann über das Setzen der Umgebungsvariable GIT_SSH das gewünschte Programm bestimmt werden.

Auswahl der SSL-Bibliothek für HTTPS-Verbindungen

screenshot

Screenshot: Auswahl der SSL-Bibliothek

Gesicherte Verbindungen zu einem git-Server können neben SSH auch über HTTPS aufgebaut werden. Hier kann ausgewählt werden, welche SSL-Bibliothek verwendet werden soll. Das hat auch Auswirkungen, auf welchen Speicher für gültige Zertifikate zugegriffen wird.

Auswahl der Konvertierung von Zeilenenden

screenshot

Screenshot: Auswahl der Zeilenenden

Windows und Unix verwenden unterschiedliche Steuerzeichen, um ein Zeilenende bzw. einen Zeilenumbruch in Textdateien zu kennzeichnen. Windows benutzt CR+LF, also "carriage return" und "line feed", Unix verwendet nur LF, also nur "line feed". Wer schon einmal Textdateien - Konfigurationsdateien, Webseiten, PHP- oder andere Code - von einem Windowsrechner (Arbeitsrechner) auf einen Unixrechner (Webserver unter Linux) transferiert hat, kennt das Problem.

git und git for Windows bieten die Möglichkeit einer automatischen Konvertierung von Textdateien beim Ein- oder Auschecken. Die dritte (unterste) Option schaltet diese Konvertierung aus. Die oberste Option konvertiert alle Zeilenende beim Auschecken nach Windows und beim Einchecken nach Unix. Dateien werden also auf dem Windows-Arbeitsrechner immer Windows-Zeilenenden haben, im Repository aber mit Unix-Zeilenenden abgelegt sein und beim Checkout auf einem Unix-Rechner anderswo dementsprechend auch diese Zeilenende haben. Die mittlere Option checkt Dateien unverändert aus, konvertiert die Zeilenenden aber beim Einchecken nach Unix. Das bedeutet, dass alle Dateien spätestens nach dem ersten Einchecken Unix-Zeilenenden haben.

Für die Arbeit auf einem Windows-Rechner wird die erste Option empfohlen. Ich nutze jedoch die zweite Option - aus zwei Gründen. Zum einen unterstützen alle von mir verwendeten Editoren auch Unix-Zeilenenden, so dass eine Konvertierung nach Windows für mich nicht notwendig ist. Zum anderen kann ich so auch einmal eine Datei per SCP von Hand auf einen Linuxserver hochladen, ohne sie dann noch einmal konvertieren zu müssen.

Die Auswahl wird in der zentralen Konfigurationsvariablen core.autocrlf gespeichert und kann dementsprechend auch später noch geändert werden mit dem Befehl git config --global core.autocrlf ..., wobei statt ... dann eben true, input oder false zu setzen sind.

Auswahl des Terminal-Emulators

screenshot

Screenshot: Auswahl des Terminal-Emulators

Als Terminal kann entweder das bei git for Windows mitgelieferte MinTTY oder die normale Windows-Kommandozeile cmd.exe verwendet werden.

Auswahl des Standard-Verhaltens von git pull

screenshot

Screenshot: Auswahl des Standard-Verhaltens von git pull

git pull kombiniert den Aufruf von git fetch mit der Integration von Änderungen in das lokale Repository. Wenn sich Divergenzen zwischen dem externen und dem lokalen Repository ergeben haben, können diese entweder über einen Merge aufgelöst werden, oder durch Rebase, oder es kann in diesem Fall eine Fehlermeldung ausgegeben werden (letzteres ist die Standardeinstellung).

Auswahl des Credential Helpers

screenshot

Screenshot: Auswahl des Git Credential Manager

Wer nicht über SSH zugreift oder keine SSH-Schlüssel verwendet, benötigt in der Regel zumindest für den schreibenden Zugriff auf ein Repository eine Benutzerkennung und ein Passwort. Diese können über Hilfsprogramme verwaltet werden. Hierzu kann der Git Credential Manager installiert werden.

Konfiguration weiterer Optionen

screenshot

Screenshot: Auswahl weiterer Optionen

Abschließend können noch einige weitere Optionen ausgewählt werden:

  • Caching zur Performance-Verbesserung (core.fscache) und
  • Unterstützung für symbolische Links.

Letzteres erfordert die Zuweisung des SeCreateSymbolicLinkPrivilege unter Windows für alle Benutzer, die diese Möglichkeit verwenden wollen.

Konfiguration

Zum Abschluss sind noch einige Konfigurationsänderungen vorzunehmen.

Umgebungsvariable GIT_SSH setzen

Zum einen muss der Suchpfad für plink, das verwendete SSH-Programm aus dem Putt-Paket, konfiguriert werden. Aktuelle Versionen von git for Windows sollten das automatisch tun; wenn Sie aber Schwierigkeiten mit SSH-Verbindungen haben, sollten Sie die Umgebungsvariable GIT_SSH passend setzen.

Dazu begeben Sie sich in der Systemsteuerung im Bereich "System und Sicherheit" zum Auswahlpunkt "System" und wählen dort im Menü auf der linken Seite den Punkt "Erweiterte Systemeinstellungen"; Administrator-Rechte sind dafür erforderlich. Es öffnet sich sodann ein weiteres Fenster, in dem bereits der Reiter "Erweitert" ausgewählt ist.

screenshot

Screenshot: Der Dialog "erweiterte Systemeigenschaften"

Über den Button "Umgebungsvariablen" gelangen Sie zu einem weiteren Auswahldialog, in dem Sie entweder nur für den angemeldeten Benutzer oder global die Umgebungsvariable GIT_SSH auf den Pfad zum Programm plink setzen können.

screenshot

Screenshot: Der Dialog "Umgebungsvariablen"

Öffentlichen SSH-Schlüssel des Servers speichern

Schließlich müssen Sie noch dafür sorgen, dass PuTTY und plink den öffentlichen SSH-Schlüssel (Hostkey) des Servers, mit dem git sich verbinden soll, kennen.

Ich baue dafür eine SSH-Verbindung über PuTTY auf und akzeptiere - nach Prüfung - den Hostkey. Danach kann der Verbindungsversuch abgebrochen werden und der Hostkey ist gespeichert. (Sicher geht das auch noch professioneller, aber es tut auch so seinen Zweck.)

Pageant starten

Vor der Arbeit mit git for Windows sollten Sie jeweils pageant starten und Ihren SSH-Schlüssel dort laden.

Abschluss

Jetzt ist git for Windows installiert und konfiguriert.

Sie können nun sowohl die Kommandozeile als auch den graphischen Client entweder über die Desktop-Icons oder über das Kontextmenü im Explorer starten und dann mit der Arbeit mit git loslegen.

gitk, der Git Repository Browser, lässt sich einfach über die Kommandozeile starten. Geben Sie dort gitk& ein. Das & startet gitk im Hintergrund. Wollen Sie gitk direkt mit allen Branches starten, benutzen Sie gitk --all&. Selbstverständlich geht das auch aus den Menüs im graphischen Client.

Für den Einstieg hilft dann die Dokumentation - die man pages oder das komplette Buch Pro Git, das teilweise bereits ins Deutsche übersetzt wurde. Daneben gibt es auch das deutschsprachige Git-Buch.

Viel Erfolg!