Här kommer ett tips för att förenkla ditt arbetsflöde. Ge din PowerShell-prompt superkrafter med Posh-Git. Den ger inte bara en visuell feedback på din Git-status utan ger dig också förslag på Git-kommandon, Branch-namn mm.

Vad gör Posh-Git?

Posh-Git lägger till en visuell feedback i din PowerShell-prompt som visar Git-status i ditt Git repository. Posh-Git lägger även till funktionalitet och hjälpmedel för att det ska bli lättare att använda prompten.

Så här ser min PowerShell prompt ut (körs genom ConEmu). Inga krusiduller, inga features.

default-conemu-powershell-prompt

Så här ser prompten ut med Posh-Git och en mindre modifiering av sökvägen. Prompten visar att två filer är tillagda och utropstecknet säger att filer finns som inte är trackade i repositoryt. Se nedan under rubriken Vad visar Git-statusen i prompten?.

posh-git-conemu-powershell-prompt

Feature: Tab för att byta branch:

posh-git-prompt-tab

Här är en kort video på hur prompten ändras beroende på Git-statusen. I videon använder jag Sublime Text med tillägget GitSavvy samt PowerShell genom ConEmu.

Vad visar Git-statusen i prompten?

Saxat från Posh-Git readme.md:

  • + = Added files
  • ~ = Modified files
  • - = Removed files
  • ! = Conflicted files

Installera

Du kan följa instruktionerna på Posh-Gits hemsida eller så kan du ta den enkla vägen och installera genom något som heter PsGet. Öppna PowerShell, skriv eller klistra in följande och kör det:

1
(new-object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex

Du bör får en feedback på att PsGet är installerat. Nu behöver du bara köra följande rad för att installera Posh-Git:

install-module posh-git

Konfigurera

När du installerat Posh-Git måste du starta om PowerShell alternativt att ladda om profilen för att ändringarna ska visas. Profilen ligger (i mitt fall) i:

1
~\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

… och den laddar i sin tur in en profil som ligger i

1
~\Documents\WindowsPowerShell\Modules\posh-git\profile.example.ps1

I profile.example.ps1 bestäms hur prompten ska se ut i funktionen global:prompt.

Personligen tyckte jag inte att hela sökvägen behövde synas i prompten då det kan ta upp mycket plats. Det räcker med att visa vilken katalog man befinner sig i just nu. Så här ser min konfiguration ut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Set up a simple prompt, adding the git prompt parts inside git repos
function global:prompt {
  $cdelim = [ConsoleColor]::DarkCyan
  $chost = [ConsoleColor]::Green
  $cloc = [ConsoleColor]::blue

  write-host '' -n -f $cdelim
  write-host (split-path (pwd) -Leaf) -n -f $cloc
  write-host '' -n -f $cdelim

  Write-VcsStatus

  $global:LASTEXITCODE = $realLASTEXITCODE
    return " > "
}

Övrigt

Läs mer om Posh-Git.