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. Im Verlauf des Installationsprozesses sind einige Fragen zur (Erst-) Konfiguration zu beantworten:

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 Verwendung einer TrueType-Schrift für alle Terminals und
  • die tägliche Suche nach Updates.

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.

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 Putty, bzw. das entsprechende Kommandozeilen-Programm plink. Ggf. muss hier der passende Pfad angegeben werden, wenn der Installer ihn nicht von selbst findet.

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.

Konfiguration weiterer Optionen

screenshot

Screenshot: Auswahl weiterer Optionen

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

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 denm 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!