카테고리 보관물: Git

Git

완성을 사용하지 않는 Homebrew의`git` 한 후에

OSX의 git을 사용할 때 파일을 수정 한 후에 간단히 수행 할 수 있으며 git commit <tab>파일 이름을 수정 된 이름으로 자동 완성합니다. 그러나 homebrew에서 최신 버전의 git을 설치하고 사용하면 해당 기능이 더 이상 작동하지 않습니다 ( <tab>변경 사항이없는 파일을 포함하여 내가 어떤 파일을하고 싶은지를 누르 십시오.) ).

누구든지 왜, 그리고 그것을 해결하는 방법에 대해 약간의 빛을 비출 수 있습니까? homebrew의 git은 최신 버전이므로 사용하는 것이 좋습니다.

내 쉘은 zsh이며 설치 bash-completion또는 zsh-completions작동 하지 않습니다 (homebrew의 설치 후 지침을 따른 후에도).

또한 homebrew와 함께 git을 설치하면

Bash completion has been installed to: /usr/local/etc/bash_completion.d
zsh completion has been installed to: /usr/local/share/zsh/site-functions

그래서 그중 하나를 사용할 수 없어야합니까?



답변

당신은 찾고 있습니다 :

brew install git bash-completion

warpc의 의견에서 알 수 있듯이 ~/.bash_profilehomebrew의 bash-completion 작업을 수행하려면 다음을 추가해야합니다 .

if [ -f $(brew --prefix)/etc/bash_completion ]; then
    . $(brew --prefix)/etc/bash_completion
fi

bash-completion 공식을 설치할 때주의 사항에 위의 내용이 언급되어 있습니다.


참고 :을 통해 Bash v4 이상을 사용하는 경우을 brew install bash사용하려는 경우 brew install bash-completion@2탭 완성을 활성화 ~/.bash_profile하려면주의 사항에 설명 된대로 다음을 추가하십시오 .

export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"

git, docker, youtube-dl 및 $(brew --prefix)/etc/bash_completion.d/디렉토리에 포함될 수있는 기타 완료에는 추가 내보내기가 필요합니다 .


답변

다음은 터미널을 다시 시작할 필요없이 OSX에서 작동하는 git tab complete입니다.

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash && echo "source ~/.git-completion.bash" >> ~/.bash_profile && source ~/.bash_profile

답변

다른 사람이 내 멍청한 실수를 저지르는 경우 시도하십시오 brew install git. 나는 gitXcode와 함께 제공 되는 것을 사용하고 있었고 자동 완성을 얻기 위해 Homebrew의 자식을 설치하지 않았다는 것을 몰랐습니다.


답변

어떤 이유로 든 파일이 누락 $(brew --prefix)/etc/bash_completion되어 @Graham Perks의 정답이 저에게 효과적이지 않았습니다.

내 경우에는 수정 사항이 끝났습니다.

brew unlink bash-completion
brew link bash-completion

답변

나는 실행될 때 $(brew --prefix)/etc/bash_completion반환 된 것을 파악하여 문제를 해결했습니다 Permission denied. 그래서 간단한 후에 :

chmod +x $(brew --prefix)/etc/bash_completion

이제 모든 것이 잘 작동합니다. 그래도 Homebrew가 bash_completion설치시 파일을 실행 파일로 만들지 않는 이유가 궁금 합니다.


답변

작동하는 솔루션을 찾았습니다. 매우 최근 (16 시간 전에 작성되었고 2 시간 전에 커밋 됨)이며 homebrew 에서 직접 가져 옵니다 .

brew install git --without-completions

방금 시도해 보았고 마침내 의도 한대로 작동합니다.


답변

나는 같은 문제가 있었고 오늘 아침 에이 게시물을 찾았습니다. brew를 업데이트 brew update한 다음 git을 다시 설치 하여 문제를 해결했습니다 brew reinstall git.

그런 다음 homebrew 연결 프로세스를 차단하는 다른 파일에 대한 알림을 받았습니다 /usr/local/share/zsh/site-functions/git-completion.bash. 파일을 제거하고 실행 brew link git하면 문제가 해결되었습니다. 그것은 우리가 우연히 발견 한 나쁜 레시피 버전 일뿐입니다.