Git
Chapters ▾ 2nd Edition

A1.8 Appendix A: Git in andere omgevingen - Git in PowerShell

Git in PowerShell

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:

PowerShell met Posh-git.
Figure 165. PowerShell met Posh-git.

Installatie

Voorwaarden (alleen Windows)

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.

> 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/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.

Update PowerShell Prompt

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

Van broncode

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