Kapitel ▾ 2. Auflage

A1.8 Anhang A: Git in anderen Umgebungen - Git in PowerShell

Git in PowerShell

Das alte Kommandozeilen-Terminal unter Windows (cmd.exe) ist nicht wirklich für eine angepasste Git-Erfahrung geeignet, aber wenn Sie PowerShell verwenden, haben Sie Glück. Dies funktioniert auch, wenn Sie PowerShell Core unter Linux oder macOS ausführen. Ein Paket namens posh-git (https://github.com/dahlbyk/posh-git) bietet leistungsstarke Tabulator-Vervollständigungsfunktionen sowie eine erweiterte Eingabeaufforderung, die Ihnen hilft, über den Status Ihres Repositorys auf dem Laufenden zu bleiben. Es sieht so aus

PowerShell with Posh-git
Abbildung 187. PowerShell mit Posh-git

Installation

Voraussetzungen (nur Windows)

Bevor Sie PowerShell-Skripte auf Ihrem Computer ausführen können, müssen Sie Ihre lokale ExecutionPolicy auf RemoteSigned setzen (im Grunde alles außer Undefined und Restricted). Wenn Sie AllSigned anstelle von RemoteSigned wählen, müssen auch lokale Skripte (Ihre eigenen) digital signiert werden, um ausgeführt werden zu können. Mit RemoteSigned müssen nur Skripte mit der ZoneIdentifier auf Internet (aus dem Web heruntergeladen) signiert werden, andere nicht. Wenn Sie ein Administrator sind und dies für alle Benutzer auf diesem Computer festlegen möchten, verwenden Sie -Scope LocalMachine. Wenn Sie ein normaler Benutzer ohne administrative Rechte sind, können Sie -Scope CurrentUser verwenden, um es nur für sich selbst festzulegen.

Um den Wert von ExecutionPolicy auf RemoteSigned für alle Benutzer festzulegen, verwenden Sie den folgenden Befehl

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

Wenn Sie mindestens PowerShell 5 oder PowerShell 4 mit installiertem PackageManagement haben, können Sie den Paketmanager verwenden, um posh-git für Sie zu installieren.

Weitere Informationen über die PowerShell Gallery: https://learn.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 von einer erhöhten PowerShell-Konsole aus. Wenn der zweite Befehl mit einer Fehlermeldung wie Module 'PowerShellGet' was not installed by using Install-Module fehlschlägt, 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 geschieht, weil die mit Windows PowerShell ausgelieferten Module mit einem anderen Herausgeberzertifikat signiert sind.

PowerShell-Eingabeaufforderung aktualisieren

Um Git-Informationen in Ihre Eingabeaufforderung einzuschließen, muss das posh-git-Modul importiert werden. Um posh-git jedes Mal beim Start von PowerShell zu importieren, führen Sie den Befehl Add-PoshGitToProfile aus, der die Importanweisung in Ihr $profile-Skript einfügt. Dieses Skript wird jedes Mal ausgeführt, wenn Sie eine neue PowerShell-Konsole öffnen. Beachten Sie, dass es mehrere $profile-Skripte gibt. Zum Beispiel eines für die Konsole und ein separates für die ISE.

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

Aus der Quelle

Laden Sie einfach eine posh-git-Version von https://github.com/dahlbyk/posh-git/releases herunter und entpacken Sie sie. Importieren Sie dann das Modul mit dem vollständigen Pfad 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 ist beim nächsten Öffnen von PowerShell aktiv.

Eine Beschreibung der im Prompt angezeigten Git-Statusübersicht finden Sie unter: https://github.com/dahlbyk/posh-git/blob/master/README.md#git-status-summary-information Weitere Details zur Anpassung Ihres posh-git-Prompts finden Sie unter: https://github.com/dahlbyk/posh-git/blob/master/README.md#customization-variables.