posh-git 으로 Power shell prompt 에 git 저장소 정보 표시하기

zsh 를 설치하고 git plugin 를 깔거나 bash 에 git_prompt  를 설정해 주면 git 저장소 폴더에 있을 경우 현재 브랜치와 변경 사항을 쉘 프롬프트에 표시해며 git 하위 명령어 사용시 탭으로 자동 완성을 할수 있는 장점이 있습니다.

예로 git che 만 입력하고 tab 키를 누르면 checkout 이 자동으로 완성이 됩니다.


파워쉘에서도 이렇게 쓰고 싶어서 찾아보니 posh-git 이라는 제품을 설치하면 된다길래 설정 과정을 정리해 봅니다..

설치

먼저 Power Shell 5.x 나 Power Shell Core 6.0 가 필요합니다.  버전은 다음 변수를 확인하면 됩니다.

PS C:\Users\lesstif> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  610

버전이 낮을 경우 각 OS 별 Power Shell Core 를 여기 에서 설치해 주면 됩니다.

nuget 으로 설치

nuget 패키지 관리자로 설치하려면 관리자 권한으로 파워셀을 열고 스크립트를 실행할 수 있도록 다음 명령어를 실행합니다.

PowerShell 스크립트 실행 권한 부여
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force


nuget 패키지 관리자를 설치합니다.

nuget 설치
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force


power shell gallery 에서 posh-git 을 설치합니다.

posh-git 설치
Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force


만약 "AllowPrerelease parameter is not recognized" 에러가 나면 PowerShellGet 이 1.6 이하이므로 다음 명령어로 PowerShellGet 을 업데이트하고 Power Shell 을 다시 구동합니다.

Install-Module PowerShellGet -Scope CurrentUser -Force -AllowClobber


choco 로 설치

chocolatey(choco) - Windows 용 Package Manager 로도  설치할 수 있습니다. 


관리자 권한으로 파워셀을 열고 choco 명령어로 poshgit 을 설치합니다.

choco 로 설치
choco install poshgit


설치한 모듈을 import 해줍니다.

module import
Import-Module posh-git


초기 profile 을 수정하기 위해 사용하는 에디터를 띄웁니다.

notepad $profile.CurrentUserAllHosts


profile 에 poshgit 모듈을 추가해 줍니다.

Import-Module posh-git


posh-git 사용

다음 명령어로 posh-git 을 현재 파워쉘 세션으로 임포트하거나 또는 파워쉘을 다시 구동합니다.

Import-Module posh-git.


git 저장소 폴더로 이동하면 아래와 같이 저장소 정보가 표시되고 로컬 변경 사항과 remote 변경 사항을 확인할 수 있으며 git 하위 명령어 사용시 tab 키로 자동 완성을 할 수 있습니다.

Ref