Chapters ▾ 2nd Edition

A1.8 Bilaga A: Git i andra miljöer - Git i PowerShell

Git i PowerShell

Den gamla kommandoradsterminalen i Windows (cmd.exe) räcker egentligen inte för en anpassad Git‑upplevelse, men om du använder PowerShell har du tur. Detta fungerar också om du kör PowerShell Core på Linux eller macOS. Ett paket som heter posh-git (https://github.com/dahlbyk/posh-git) ger kraftfull tabbkomplettering och en förbättrad prompt som hjälper dig att följa kodförrådets status. Det ser ut så här:

PowerShell med Posh-git
Figur 185. PowerShell med Posh-git

Installation

Förutsättningar (endast Windows)

Innan du kan köra PowerShell‑skript på din maskin måste du sätta din lokala ExecutionPolicy till RemoteSigned (i praktiken allt utom Undefined och Restricted). Om du väljer AllSigned i stället för RemoteSigned måste även lokala skript (dina egna) vara digitalt signerade för att få köras. Med RemoteSigned behöver bara skript med ZoneIdentifier satt till Internet (hämtade från webben) vara signerade, övriga inte. Om du är administratör och vill ställa in detta för alla användare på maskinen använder du -Scope LocalMachine. Om du är en vanlig användare utan administratörsrättigheter kan du använda -Scope CurrentUser för att sätta det bara för dig.

För att sätta värdet på ExecutionPolicy till RemoteSigned för alla användare använder du följande kommando:

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

Om du har minst PowerShell 5 eller PowerShell 4 med PackageManagement installerat kan du använda pakethanteraren för att installera posh-git.

> Install-Module posh-git -Scope CurrentUser -Force
> Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force # Newer beta version with PowerShell Core support

Om du vill installera posh-git för alla användare använder du -Scope AllUsers i stället och kör kommandot från en upphöjd PowerShell‑konsol. Om det andra kommandot misslyckas med ett fel som Module 'PowerShellGet' was not installed by using Install-Module behöver du köra ett annat kommando först.

> Install-Module PowerShellGet -Force -SkipPublisherCheck

Därefter kan du gå tillbaka och försöka igen. Detta händer eftersom modulerna som följer med Windows PowerShell är signerade med ett annat utgivarcertifikat.

Uppdatera PowerShell‑prompten

För att inkludera Git‑information i din prompt måste posh-git‑modulen importeras. För att posh-git ska importeras varje gång PowerShell startar kör du kommandot Add-PoshGitToProfile, som lägger till import‑raden i ditt $profile‑skript. Detta skript körs varje gång du öppnar en ny PowerShell‑konsol. Tänk på att det finns flera $profile‑skript. Till exempel ett för konsolen och ett separat för ISE.

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

Från källkod

Ladda bara ner en posh-git‑utgåva från https://github.com/dahlbyk/posh-git/releases och packa upp den. Importera sedan modulen med den fulla sökvägen till filen posh-git.psd1:

> Import-Module <path-to-uncompress-folder>\src\posh-git.psd1
> Add-PoshGitToProfile -AllHosts

Detta lägger till rätt rad i din profile.ps1‑fil, och posh-git är aktivt nästa gång du startar PowerShell.

För en beskrivning av Git‑statussammanfattningen som visas i prompten, se: https://github.com/dahlbyk/posh-git För fler detaljer om hur du anpassar din posh-git‑prompt, se: https://github.com/dahlbyk/posh-git.