Git
Chapters ▾ 2nd Edition

A1.9 Appendix A: Git in anderen Umgebungen - Git in PowerShell

Git in PowerShell

Das Legacy-Befehlszeilenterminal unter Windows (cmd.exe) bietet keine Git Integration, aber wenn Sie PowerShell verwenden, haben Sie Glück. Dies funktioniert auch, wenn Sie PowerShell Core unter Linux oder macOS ausführen. Ein Paket mit dem Namen posh-git (https://github.com/dahlbyk/posh-git) bietet leistungsstarke Funktionen zur Tab Vervollständigung sowie eine erweiterte Eingabeaufforderung, mit der Sie den Überblick über Ihren Repository-Status behalten. Folgendermaßen sieht es aus:

PowerShell mit Posh-git.
Figure 166. PowerShell with Posh-git.

Installation

Voraussetzungen (Nur für Windows)

Bevor Sie PowerShell-Skripte auf Ihrem Computer ausführen können, müssen Sie Ihre lokale ExecutionPolicy auf RemoteSigned (im Allgemeinen alles außer Undefiniert und Eingeschränkt) einstellen. Wenn Sie AllSigned anstelle von RemoteSigned auswählen, müssen auch lokale Skripte (Ihre eigenen) digital signiert sein, damit sie ausgeführt werden können. Mit RemoteSigned müssen nur Skripte signiert werden, bei denen „ZoneIdentifier“ auf Internet eingestellt ist (sie wurden aus dem Web heruntergeladen), andere nicht. Wenn Sie ein Administrator sind und es für alle Benutzer auf diesem Computer festlegen möchten, verwenden Sie „-Scope LocalMachine“. Wenn Sie ein normaler Benutzer ohne Administratorrechte sind, können Sie „-Scope CurrentUser“ verwenden, um es nur für sich selber festzulegen.

Um den Wert von ExecutionPolicy für alle Benutzer auf RemoteSigned zu setzen, verwenden Sie den nächsten Befehl:

> Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force

PowerShell Galerie

Wenn Sie mindestens PowerShell 5 oder PowerShell 4 mit PackageManagement installiert haben, können Sie posh-git mithilfe des Paketmanagers installieren.

Weitere Informationen zur PowerShell-Galerie unter: https://docs.microsoft.com/en-us/powershell/scripting/gallery/overview

> Install-Module posh-git -Scope CurrentUser -Force
> Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force # Newer beta version with PowerShell Core support

Wenn Sie posh-git für alle Benutzer installieren möchten, verwenden Sie stattdessen „-Scope AllUsers“ und führen Sie den Befehl über eine PowerShell-Konsole mit admin Rechten aus. Wenn der zweite Befehl fehlschlägt und ein Fehler wie Module 'PowerShellGet' was not installed by using Install-Module, müssen Sie zuerst einen anderen Befehl ausführen:

> Install-Module PowerShellGet -Force -SkipPublisherCheck

Dann können Sie zurückgehen und es erneut versuchen. Dies liegt daran, dass die mit Windows PowerShell gelieferten Module mit einem anderen Veröffentlichungszertifikat signiert sind.

Aktualisierung der PowerShell Eingabeaufforderung

Um Git-Informationen in Ihre Eingabeaufforderung aufzunehmen, muss das Posh-Git-Modul importiert werden. Wenn posh-git bei jedem Start von PowerShell importiert werden soll, führen Sie den Befehl Add-PoshGitToProfile aus, mit dem die import-Anweisung in Ihr $profile-Skript eingefügt wird. Dieses Skript wird jedes Mal ausgeführt, wenn Sie eine neue PowerShell-Konsole öffnen. Beachten Sie, dass es mehrere $profile Skripte gibt. Z.B. eins für die Konsole und ein separates für die ISE.

> Import-Module posh-git
> Add-PoshGitToProfile -AllHosts

Vom Quellcode

Laden Sie einfach eine posh-git-Version von (https://github.com/dahlbyk/posh-git) herunter und entpacken Sie sie. Importieren Sie dann das Modul unter Verwendung des vollständigen Pfads zur Datei posh-git.psd1:

> Import-Module <path-to-uncompress-folder>\src\posh-git.psd1
> Add-PoshGitToProfile -AllHosts

Dies fügt die richtige Zeile zu Ihrer profile.ps1-Datei hinzu und posh-git wird beim nächsten Öffnen von PowerShell aktiviert.

Eine Beschreibung der in der Eingabeaufforderung angezeigten Git-Statuszusammenfassungsinformationen finden Sie unter: https://github.com/dahlbyk/posh-git/blob/master/README.md#git-status-summary-information Weitere Informationen zum Anpassen Ihrer posh-git-Eingabeaufforderung finden Sie unter: https://github.com/dahlbyk/posh-git/blob/master/README.md#customization-variables