bash 명령에서 git checkout이 멈췄습니다. 찾을 수 없습니다.

bash 명령에서 git checkout이 멈췄습니다. 찾을 수 없습니다.

bashLinux가 찾을 수 없는 명령을 (에) 입력하면 일반적으로 다음과 같은 작업이 수행됩니다.

$ x
x: command not found

그러나 찾을 수 없지만 어떤 의미에서는 다른 가능한 명령과 유사한 명령을 입력하면 응답은 다음과 같습니다.

$ pyp
No command 'pyp' found, did you mean:
 Command 'pcp' from package 'pcp' (universe)
 Command 'pype' from package 'pype' (universe)
 Command 'pgp' from package 'pgpgpg' (universe)
 Command 'pp' from package 'libpar-packer-perl' (universe)
 Command 'php' from package 'php5-cli' (main)
 Command 'gyp' from package 'gyp' (universe)
 Command 'pip' from package 'python-pip' (universe)
 Command 'pap' from package 'netatalk' (universe)
pyp: command not found

이는 응답에 사용되기 pyp전에 특정 후크를 확인한다는 의미입니다.bashpyp: command not found

"command"가 현재 저장소에 있는 브랜치 이름인지 확인하고(실제로 저장소에 있는 경우) 응답하기 전에 체크아웃을 시도하는 후크를 작성하고 싶습니다. command not found그러나 명령이 실제로 그렇지 않은 경우에만 가능합니다. 설립하다 .

이렇게 하려면 명령을 입력하고 Enter를 누르면 프로세스에 대해 알아야 합니다. “이런 뜻이었나요?”에 답하는 절차는 어떻게 되나요? Bash에서 명령 문자열을 어떻게 얻나요?

답변1

command_not_found_handle쉘 기능을 교체/변경해야 합니다 .

type command_not_found_handle

답변2

command-not-found패키지는 Debian 및 Ubuntu에서 이러한 동작을 담당합니다. 그러나 자체 핸들러를 정의할 필요는 없습니다. command_not_found_handle다음과 같이 사용할 수 있습니다 .

command_not_found_handle() {
    if [ -d .git ] || git rev-parse --is-git-dir 2>/dev/null; then
        git checkout "$1" 2>/dev/null
    else
        printf '%s: %s: command not found\n' "$0" "$1"
        return 127
    fi
}

다음과 같은 메시지를 억제합니다.귀하의 지점은 최신 "원본/마스터"입니다., &>대신 사용 2>: git checkout "$1" &>/dev/null.

nyuszika7h@cadoth ~ > master
-bash: master: command not found
127 nyuszika7h@cadoth ~ > cd src/github/nyuszika7h/Limnoria/
nyuszika7h@cadoth ~/src/github/nyuszika7h/Limnoria master > testing
Your branch is up-to-date with 'origin/testing'.
nyuszika7h@cadoth ~/src/github/nyuszika7h/Limnoria testing > foobar
-bash: foobar: command not found
127 nyuszika7h@cadoth ~/src/github/nyuszika7h/Limnoria testing >

원천

zsh - 현재 디렉토리가 Git 저장소인지 확인하십시오.

관련 정보