별칭에 대한 Git 완성은 "git reflog"를 실행한 후에만 사용할 수 있습니다.

별칭에 대한 Git 완성은 "git reflog"를 실행한 후에만 사용할 수 있습니다.

다음과 같이 git에 대해 자동 완성하려는 별칭이 있습니다.

alias gco="git checkout"

이 별칭에 대한 완성을 추가하려고 할 때 경로를 둘러보고 사용 가능한 git 완성이 여러 개 있는 것을 확인합니다(예: , _git-push, _git-checkout) _git-diff-files. 한때 나는 compdef그것을 이렇게 정의한 적이 있다.

compdef _git-checkout gco

이것은 한동안 효과가 있었고 터미널을 다시 시작했는데 갑자기 모두 사라졌습니다... (완료에 대한 오류가 발생하지 않음):

gco (eval):1: command not found: _git-checkout
(eval):1: command not found: _git-checkout
(eval):1: command not found: _git-checkout

이상하게도 내가 달리고 나면 그 사람들은 모두 내 앞길에 던져졌다 git reflog. (그런 다음 작동합니다). 여기서는 의존해서는 안되는 내부 기능에 의존하고 있습니까? 이 문제를 다르게 처리해야 합니까? ( git reflog나의 에 a를 추가 할 수도 있지만 .zshrc이는 완전히 터무니없는 것 같습니다).

관련 정보