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 패키지 관리자로 설치하려면 관리자 권한으로 파워셀을 열고 스크립트를 실행할 수 있도록 다음 명령어를 실행합니다.
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force
nuget 패키지 관리자를 설치합니다.
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
power shell gallery 에서 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 install poshgit
설치한 모듈을 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 키로 자동 완성을 할 수 있습니다.