De standaard commando regel terminal in Windows (cmd.exe
) is niet echt in staat om een aangepaste Git beleving te ondersteunen, maar als je PowerShell gebruikt heb je geluk.
Dit werkt ook als je PowerShell op een niet-Windows platform zoals Linux of macOS draait.
Een pakket met de naam Posh-Git (https://github.com/dahlbyk/posh-git) levert krachtige tab-voltooings functionaliteit, zowel als een uitgebreide prompt om je te
helpen bij het zeer nauwlettend volgen van je repository status.
Het ziet er zo uit:
Voordat je PowerShell scripts op je machine kunt draaien, moet je je locale ExecutionPolicy op RemoteSigned zetten (Eigenlijk alles behalve Undefined en Restricted). Als je AllSigned kiest in plaats van RemoteSigned, moeten ook lokale scripts (je eigen) digitaal ontertekend worden om te kunnen worden uitgevoerd. Met RemoteSigned moeten alleen Scripts waarvan de "ZoneIdentifier" op Internetgezet is (gedownload vanaf het net) getekend worden, andere niet. Als je een adminstrator bent, en dit voor alle gebruikers op die machine installen, gebruik dan "-Scope LocalMachine". Als je een normale gebruiker bent, zonder administratieve rechten, kan je "-Scope CurrentUser" gebruiken om het alleen voor jou in te stellen.
Meer over PowerShell Scopes: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_scopes
Meer over PowerShell ExecutionPolicy: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy
> Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force
Als je minstens PowerShell 5 of PowerShell 4 met PackageManagement hebt geinstalleerd, kan je de package manager gebruiken om Posh-Git voor je op te halen.
Meer informatie over PowerShell Gallery: 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
Als je posh-git voor de alle gebruikers wilt installeren, gebruik dan "-Scope AllUser" en voer het commando uit vanuit een verhoogd (elevated) PowerShell console.
Als het tweede commando faalt met een fout als Modules 'PowerShellGet' was not installed by using Install-Module
, moet je eerst een ander commando aanroepen:
> Install-Module PowerShellGet -Force -SkipPublisherCheck
Dan kan je weer teruggaan en nog een keer proberen. Dit gebeurt, omdat de modules die met Windows PowerShell worden verscheept tegekend zijn met een ander publicatie certificaat.
Om git informatie in je prompt te laten zien, moet de posh-git module worden geimporteerd. Om dit automatisch te laten gebeuren moet het import statement in je $profile script worden opgenomen. Dit script wordt elke keer als je een nieuw PowerShell prompt opent aangeroepen. Onthoud, dat er meerdere $profile scripts zijn. Bijv. een voor het console en een aparte voor de ISE.
> Import-Module posh-git
> Add-PoshGitToProfile -AllHosts
Gewoon een posh-git versie downloaden van (https://github.com/dahlbyk/posh-git), en het uitpakken. Daarna de module importeren met het volledige pad naar het posh-git.psd1 bestand:
> Import-Module <path-to-uncompress-folder>\src\posh-git.psd1
> Add-PoshGitToProfile -AllHosts
Dit zal de juiste regel toevoegen aan je profile.ps1
bestand en posh-git wordt actief de volgende keer dat je je PowerShell prompt opent.
Voor een beschrijving van de Git status samenvattingsinformatie die in de prompt wordt getoond, zie: https://github.com/dahlbyk/posh-git/blob/master/README.md#git-status-summary-information
Voor meer details hoe je posh-git prompts aan te passen zie: https://github.com/dahlbyk/posh-git/blob/master/README.md#customization-variables