소개
Posh Git는 Keith Dahlby가 만든 PowerShell 모듈로, Git과 PowerShell을 통합하여 개발자의 워크플로우를 강화합니다. Git 저장소 내에서 현재 브랜치와 파일 상태를 요약한 정보를 프롬프트에 표시하고, 일반적인 Git 명령어에 대한 탭 완성을 제공하여 개발 생산성을 높여줍니다.
상세정보
Git 상태 프롬프트 통합
Git 저장소 내에서 PowerShell 프롬프트에 현재 브랜치 이름과 파일 상태 요약을 표시합니다. 상태 형식은 [{HEAD-name} +A ~B -C !D | +E ~F -G !H]와 같으며, 각 문자는 인덱스와 작업 디렉토리의 변경 사항을 나타냅니다. 브랜치 색상은 상태를 직관적으로 보여줍니다: 빨간색은 리모트 브랜치보다 뒤처져 있고, 초록색은 앞서고 있음을 의미합니다.
명령어 탭 완성
git checkout, git branch와 같은 일반적인 Git 명령어와 브랜치 이름, 경로에 대한 탭 완성을 제공합니다. 예를 들어 ‘git ch’를 입력한 후 탭 키를 누르면 ‘git checkout’으로 자동 완성됩니다.
SSH 에이전트 관리 및 기타 도구
SSH 에이전트를 위한 래퍼 함수(Get-SshAgent, Start-Ssh-Agent, Stop-SshAgent)와 모든 브랜치를 업데이트하는 Update-AllBranches 같은 유틸리티를 포함합니다.
다운로드·설치 방법
설치 전에 다음 사항을 확인해야 합니다. PowerShell 버전을 $PSVersionTable.PSVersion 명령으로 확인하여 2.0 이상인지 검사하고, 스크립트 실행 정책이 RemoteSigned 또는 Unrestricted인지 확인합니다. Git이 PowerShell에서 실행 가능한지, ‘%ProgramFiles%Gitcmd’ 경로가 PATH에 설정되어 있는지도 확인합니다.
- PowerShellGet을 통한 설치 (PowerShell 5 이상 권장): 관리자 권한으로 PowerShell을 열고 다음 명령을 실행합니다.
Install-Module posh-git -Scope CurrentUser -Force - Chocolatey를 통한 설치: Chocolatey가 설치된 환경에서 choco install posh-git 명령을 실행합니다.
- Scoop를 통한 설치: Scoop이 설치된 환경에서 scoop install posh-git 명령을 실행합니다.
- 수동 설치: 공식 저장소를 클론한 후 레포지토리 디렉토리에서 .install.ps1 스크립트를 실행합니다.
기본 사용법/설정
설치 후 PowerShell 프로필 스크립트에 모듈을 가져와야 합니다. 두 가지 방법이 있습니다:
- PowerShell에서 Add-PoshGitToProfile 명령을 실행합니다. 모든 PowerShell 호스트에서 사용하려면 Add-PoshGitToProfile -AllHosts를 사용합니다.
- PowerShell 프로필 스크립트($profile.CurrentUserAllHosts)를 직접 편집하여 Import-Module posh-git 줄을 추가합니다.
$GitPromptSettings, $GitTabSettings, $TortoiseGitSettings 같은 전역 변수를 사용하여 프롬프트 포맷과 탭 완성 동작을 사용자 지정할 수 있습니다.
이런 경우에 유용합니다
- PowerShell 환경에서 Git 작업을 주로 수행하는 개발자
- 커밋 전에 파일 변경 상태를 실시간으로 확인하고 싶은 사용자
- Git 명령어를 더 빠르고 정확하게 입력하고 싶은 사용자
지원 환경·시스템 요구사항
- PowerShell 2.0 이상 (5.0 이상 권장)
- Git이 설치되어 있고 PATH 환경 변수에 설정되어 있어야 합니다.
- 스크립트 실행 정책이 RemoteSigned 또는 Unrestricted로 설정되어 있어야 합니다.
제한 사항·확인 사항
- 매우 큰 저장소에서는 파일 상태를 프롬프트에 표시하는 것이 느려질 수 있습니다. 이 경우 $GitPromptSettings.RepositoriesInWhichToDisableFileStatus 변수에 해당 저장소 경로를 추가하여 파일 상태 표시를 개별적으로 비활성화할 수 있습니다.
- 기본 프롬프트 함수를 사용자 지정한 경우 posh-git의 프롬프트 업데이트가 적용되지 않을 수 있습니다.
시스템 요구사항
Array


