본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 생산성·자동화 · 윈도우즈 유틸

Posh Git

0

Posh Git는 Keith Dahlby가 만든 PowerShell 모듈로, Git과 PowerShell을 통합하여 개발자의 워크플로우를 강화합니다.

MIT 라이선스개발 도구개인용명령줄오픈소스탭 완성

소개

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 프로필 스크립트에 모듈을 가져와야 합니다. 두 가지 방법이 있습니다:

  1. PowerShell에서 Add-PoshGitToProfile 명령을 실행합니다. 모든 PowerShell 호스트에서 사용하려면 Add-PoshGitToProfile -AllHosts를 사용합니다.
  2. 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