Das Legacy-Befehlszeilenterminal unter Windows (cmd.exe
) bietet keine Git Integration, aber wenn du PowerShell verwendest, hast du Glück.
Dies funktioniert auch, wenn du PowerShell Core unter Linux oder macOS ausführst.
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 du den Überblick über deinen Repository-Status behalten kannst.
Folgendermaßen sieht es aus:
Bevor du PowerShell-Skripte auf deinen Computer ausführen kannst, musst du deine lokale ExecutionPolicy auf RemoteSigned (im Allgemeinen alles außer Undefiniert und Eingeschränkt) einstellen. Wenn du AllSigned anstelle von RemoteSigned auswählst, müssen auch lokale Skripte (deine 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 du ein Administrator bist und es für alle Benutzer auf diesem Computer festlegen möchtest, verwende „-Scope LocalMachine“. Wenn du ein normaler Benutzer ohne Administratorrechte bist, kannst du „-Scope CurrentUser“ verwenden, um es nur für dich selber festzulegen.
Weitere Informationen zu PowerShell-Bereichen unter: https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell.core/about/about_scopes.
Weitere Informationen zu PowerShell ExecutionPolicy unter: https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell.security/set-executionpolicy.
Um den Wert von ExecutionPolicy
für alle Benutzer auf RemoteSigned
zu setzen, verwende den nächsten Befehl:
> Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force
Wenn du mindestens PowerShell 5 oder PowerShell 4 mit PackageManagement installiert hast, kannst du posh-git mithilfe des Paketmanagers installieren.
Weitere Informationen zur PowerShell-Galerie unter: https://docs.microsoft.com/de-de/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 du posh-git für alle Benutzer installieren möchtest, verwende stattdessen „-Scope AllUsers“ und führe 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
auftritt, musst du zuerst einen anderen Befehl ausführen:
> Install-Module PowerShellGet -Force -SkipPublisherCheck
Dann kannst du es erneut versuchen. Dies liegt daran, dass die mit Windows PowerShell gelieferten Module mit einem anderen Veröffentlichungszertifikat signiert sind.
Um Git-Informationen in deine Eingabeaufforderung aufzunehmen, muss das Posh-Git-Modul importiert werden.
Wenn posh-git bei jedem Start von PowerShell importiert werden soll, führe den Befehl Add-PoshGitToProfile aus, mit dem die import-Anweisung in dein $profile-Skript eingefügt wird.
Dieses Skript wird jedes Mal ausgeführt, wenn du eine neue PowerShell-Konsole öffnest.
Beachte, 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
Lade einfach eine posh-git-Version von (https://github.com/dahlbyk/posh-git) herunter und entpacke sie. Importiere 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 deiner profile.ps1
Datei hinzu und posh-git wird beim nächsten Öffnen von PowerShell aktiviert.
Eine Beschreibung der in der Eingabeaufforderung angezeigten Git-Statuszusammenfassungsinformationen findest du unter: https://github.com/dahlbyk/posh-git/blob/master/README.md#git-status-summary-information Weitere Informationen zum Anpassen deiner posh-git-Eingabeaufforderung findest du unter: https://github.com/dahlbyk/posh-git/blob/master/README.md#customization-variables.