Git
Chapters ▾ 2nd Edition

A1.6 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 Debian werkt. 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. Meer over PowerShell Scopes: (https://technet.microsoft.com/de-de/library/hh847849.aspx) 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 de benodigdheden: (https://docs.microsoft.com/en-us/powershell/gallery/psget/get_psget_module)

> Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
> Update-Module PowerShellGet -Force
> Install-Module Posh-Git -Scope AllUsers

Als je Posh-Git alleen voor de huidige gebruiker wilt installeren en niet voor iedereen, gebruik dan "-Scope CurrentUser". 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 posh-git 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.

> New-Item -Name $(Split-Path -Path $profile) -ItemType Directory -Force
> 'Import-Module Posh-Git' | Out-File -Append -Encoding default -FilePath $profile

Van broncode

Gewoon een Poshh-Git versie downloaden van (https://github.com/dahlbyk/posh-git), en het uitpakken in de WindowsPowerShell directory. Dan een Powershell prompt openen als administrator, en dit uitvoeren:

> cd ~\Documents\WindowsPowerShell\Module\posh-git
> .\install.ps1

Dit zal de juiste regel toevoegen aan je profile.ps1 bestand en posh-git wordt actief de volgende keer dat je je prompt opent.