예를 들어 새로운 우분투 머신에서 방금 실행 sudo apt-get git
했으며 예를 들어 입력 할 때 완료가 없습니다 git check[tab]
.
http://git-scm.com/docs 에서 아무것도 찾지 못했지만 IIRC 완성은 요즘 git 패키지에 포함되어 있으며 bashrc에 올바른 항목이 필요합니다.
(cd ~ && exec cat .bashrc | grep completion)
.
예를 들어 새로운 우분투 머신에서 방금 실행 sudo apt-get git
했으며 예를 들어 입력 할 때 완료가 없습니다 git check[tab]
.
http://git-scm.com/docs 에서 아무것도 찾지 못했지만 IIRC 완성은 요즘 git 패키지에 포함되어 있으며 bashrc에 올바른 항목이 필요합니다.
(cd ~ && exec cat .bashrc | grep completion)
.
답변:
대부분의 배포판에서 git 을 설치할 때 git 완료 스크립트가 /etc/bash_completion.d/
(또는 /usr/share/bash-completion/completions/git
)에 설치되므로 github로 이동할 필요가 없습니다. 당신은 그것을 사용하기 만하면됩니다-이 줄을 당신의 .bashrc
:
source /etc/bash_completion.d/git
# or
source /usr/share/bash-completion/completions/git
일부 Ubuntu 버전에서는 git autocomplete가 기본적으로 손상 될 수 있습니다.이 명령을 실행하여 다시 설치하면 문제가 해결됩니다.
sudo apt-get install git-core bash-completion
Homebrew 또는 MacPorts를 사용하여 git 완성을 설치할 수 있습니다.
경우 $BASH_VERSION
> 4 : brew install bash-completion@2
(업데이트 된 버전) MacOS 기본으로 3.2.57 (1) 릴리스와 함께 제공되는 bash 버전을 특별히주의하십시오.
추가 .bash_profile
:
if [ -f /usr/local/share/bash-completion/bash_completion ]; then
. /usr/local/share/bash-completion/bash_completion
fi
이전 버전의 bash의 경우 : brew install bash-completion
추가 .bash_profile
:
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
sudo port install git +bash_completion
그런 다음 이것을 추가하십시오 .bash_profile
:
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
fi
이 가이드의 추가 정보 : Bash git 완료 설치
모든 경우에 변경 사항을 적용하려면 새 셸 (새 터미널 탭 / 창 열기)을 만들어야합니다.
/usr/share/bash-completion/completions/git
. /etc/bash_completion.d/git-prompt
완료가 아닌 git 프롬프트 지원에 사용됩니다.
brew uninstall bash-completion
후, brew install git
당신은 자식 전에 다른 방법을 통해 설치 한 경우, 위의 단계가 작동합니다.
나는 같은 문제가 있었고 아래 단계를 따랐다.
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
그런 다음 .bash_profile
(일반적으로 홈 폴더 아래에) 다음 줄을 추가하십시오.
if [ -f ~/.git-completion.bash ]; then
. ~/.git-completion.bash
fi
export https_proxy=proxy_ip:proxy_port
해야했습니다. 시스템에서 설정을 가져 오지 못하는 이유를 알 수 없습니다.
표시되는 대부분의 지침은 다운로드하라고 알려줍니다.
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
bash 시작 스크립트에서 .bashrc
.
하지만 .NET master
의 최신 버전 인 브랜치를 참조하기 때문에 문제 가 git-completion.bash
있습니다. 문제는 설치 한 git 버전과 호환되지 않기 때문에 가끔 고장날 수 있다는 것입니다.
사실, 지금은 master
브랜치에 git-completion.bash
git v2.18이 필요한 새로운 기능이 있기 때문에 지금 당장 은 패키지 관리자와 설치 관리자가 아직 업데이트하지 않은 새로운 기능이 있습니다. 오류가 발생합니다.unknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config
따라서 가장 안전한 해결책은 설치 한 git과 일치하는 버전 / 태그를 참조하는 것입니다. 예를 들면 :
https://raw.githubusercontent.com/git/git/v2.17.1/contrib/completion/git-completion.bash
참고 그것이 가지고 v2.17.
URL에 대신 master
. 그리고 물론 bash 시작 스크립트에서이를 소싱해야합니다.
/Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
합니다. 안전을 위해 github의 2.17.1 버전과 비교했는데 일치합니다.
git-core
하고bash-completion
sudo apt-get install -y git-core bash-completion
현재 세션 사용
source /usr/share/bash-completion/completions/git
모든 세션에 대해 항상 사용하려면
echo "source /usr/share/bash-completion/completions/git" >> ~/.bashrc
참조 https://github.com/git/git/blob/master/contrib/completion/git-completion.bash를
완료 스크립트를 소싱하기 만하면됩니다.
다음에서 수행하십시오 ~/.bashrc
.
source /usr/share/bash-completion/completions/git
다른 답변은 설치하라고 말합니다. bash-completion
있지만 그렇게 할 필요는 없지만 그렇게하면 완성을 직접 가져올 필요가 없습니다. 둘 중 하나만 수행합니다.
보다 일반적인 솔루션은 bash-completion 프로젝트에서 권장하는대로 시스템 위치를 쿼리하는 것입니다.
source "$(pkg-config --variable=completionsdir bash-completion)"/git
누군가에게 도움이 될 수 있습니다 :-
다음 링크에서 .git-completion.bash를 다운로드 한 후,
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
__git_ps1 함수를 사용하려고하면 다음과 같은 오류가 발생했습니다.
-bash: __git_ps1: command not found
__git_ps1은 git-prompt.sh에 정의되어 있으므로이 명령이 작동하려면 master에서 별도로 스크립트를 다운로드해야합니다. 따라서 .git-completion.bash 다운로드와 유사하게 git-prompt.sh를 가져옵니다.
curl -L https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh > ~/.bash_git
.bash_profile에 다음을 추가하십시오.
source ~/.bash_git
if [ -f ~/.git-completion.bash ]; then
. ~/.git-completion.bash
export PS1='\W$(__git_ps1 "[%s]")>'
fi
source ~ / .bash.git은 다운로드 한 파일을 실행하고
export PS1='\W$(__git_ps1 "[%s]")
명령은 현재 작업 디렉토리 (git 저장소 인 경우) 뒤에 체크 아웃 브랜치 이름을 추가합니다.
따라서 다음과 같이 보일 것입니다.
dir_Name[branch_name]
여기서 dir_Name은 작업 디렉토리 이름이고 branch_name은 현재 작업중인 브랜치의 이름입니다.
참고-__git_ps1은 대소 문자를 구분합니다.
Git 프로젝트의 Github에서 git 명령을 자동 완성하는 bash 파일을 제공합니다.
홈 디렉토리에 다운로드하고 bash가 실행하도록해야합니다. 그것은 단순히 두 단계이며 다음 블로그 게시물에서 완벽하게 설명합니다.
코드 걱정 블로그 : autocomplete-git /
나는 그것을 Mac에서 테스트했으며 다른 시스템에서도 작동해야합니다. 다른 운영 체제에도 동일한 접근 방식을 적용 할 수 있습니다.