it-source

Powershell의 Git 분기에 대한 탭 완료 추가

criticalcode 2023. 5. 1. 21:28
반응형

Powershell의 Git 분기에 대한 탭 완료 추가

Git 저장소 내부에서 Powershell에 분기에 대한 탭 완료를 추가할 수 있습니까?예:

PS> git checkout maTAB

결과적으로

PS> git checkout master

이를 위해서는 PowerShell용 깃 프로바이더가 존재해야 합니다.

빠른 검색 후, 기괴하지만 적절한 이름을 가진 포쉬 깃과 유사한 것이 분명히 존재합니다.

http://github.com/dahlbyk/posh-git

Git/PowerShell 통합을 제공하는 PowerShell 스크립트 세트

  • Git 저장소에 대한 프롬프트:Git 저장소 내의 프롬프트는 현재 분기와 파일의 상태(추가, 수정,
    삭제) 내의
  • 탭 완료: git 사용 시 일반적인 명령어에 대한 탭 완료를 제공합니다.예.git ch<tab>-->git checkout

사용.

탭 완료 및/또는 git 프롬프트를 자신의 프로파일에 통합하는 방법은 profile.example.ps1을 참조하십시오.고급 git 명령을 탭 확장에 표시할지 아니면 단순/공통 명령만 표시할지 선택할 수도 있습니다.기본값은 단순합니다.

나는 이 작은 PS "gem"을 썼습니다, 만약 과장된 기트가 너무 심하다면.
입력할 수 있도록 PowerShell 프로필에 저장하기만 하면 됩니다.co (공백 포함) 및 를 눌러 완료를 트리거하고 분기 목록을 순환합니다.

function co
{
    param(
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [ArgumentCompleter({
            param($pCmd, $pParam, $pWord, $pAst, $pFakes)

            $branchList = (git branch --format='%(refname:short)')

            if ([string]::IsNullOrWhiteSpace($pWord)) {
                return $branchList;
            }

            $branchList | Select-String "$pWord"
        })]
        [string] $branch
    )

    git checkout $branch;
}

업데이트: 공백 후 탭 완료가 호출되고 일부 문자열을 일치시킬 수 없을 때 분기 목록을 반환하도록 리팩터링되었습니다.분기가 하나인 경우 "마스터"를 반환합니다.

보너스로, 여러분은 조개껍데기에서 거북이 깃을 부를 수 있다는 것을 알고 있었나요?

function dif
{
    TortoiseGitProc.exe /command:repostatus
}

언급URL : https://stackoverflow.com/questions/3586722/add-tab-completion-for-git-branches-in-powershell

반응형