zsh에서는 다음 명령을 사용합니다.로컬 및 원격 지점 삭제 기능다음 명령을 사용하십시오.
gpDo () {
git branch -d "$1" && git push --delete origin "$1"
}
현재 Git 브랜치에 대한 자동 완성은 작동하지 않습니다. 전체 지점 이름을 수동으로 입력해야 합니다. 이러한 유형의 기능을 사용하려면 탭 완성을 어떻게 해야 합니까?
답변1
나는 당신이 사용하고 있다고 가정합니다"새로운" 완성 시스템에 의해 활성화되었습니다 compinit
. oh-my-zsh를 사용한다면 그렇습니다.
git 브랜치 이름을 사용하도록 zsh에 지시해야 합니다 gpDo
. Git은 이미 브랜치 이름을 완성하는 방법을 제공합니다. zsh 5.0.7부터 이것은 기능이지만 __git_branch_names
안정적인 인터페이스가 아니므로 다른 버전에서는 변경될 수 있습니다. 이 기능을 사용하려면 다음 줄을 다음 줄에 입력하세요 .zshrc
.
compdef __git_branch_names gpDo
이 문을 사용하면 gpDo
명령줄에서 작업을 한 번 이상 완료한 후에만 완료가 적용됩니다 git
. 이는 zsh의 기능 자동 로딩 문제 때문입니다. 또는 _git 2>/dev/null
귀하의 것에서 실행하세요 .zshrc
. 완료 함수가 잘못된 컨텍스트에서 호출되기 때문에 오류가 발생하지만 오류는 무해하며 로드 및 관련 함수(__git_branch_names 포함)의 부작용은 _git
그대로 유지됩니다.
또는 자체 git 분기 완료 기능을 정의하세요. 빠르고 더러운 방법:
_JJD_git_branch_names () {
compadd "${(@)${(f)$(git branch -a)}#??}"
}