Linux 컴퓨터 에서 Git을 사용 하여 분기 를 자동 완성 했습니다 .
[우리가 자식 지점 완료, 얘기 참고 하지 bash는 완료 (예 : 명령, 파일 등). 따라서 전혀 레인의 대답 은]
예를 들어 git checkout
+ 를 입력 TAB하고 분기 목록을 가져올 수 있습니다 .
또는 “feb”로 시작하는 모든 분기를 가져 오려면 git checkout feb*
+ TAB를 입력 할 수 있습니다 .
Mac에서이 기능을 사용하려면 어떻게해야합니까?
나는 다운로드 및 실행되지 시도 bash-completion/bash_completion
와 bash-completion/bash_completion.sh.in
기쁨을하지만. 첫 번째에 대한 오류 메시지가 표시되었습니다 declare: -A invalid_option
. 두 번째는 오류가 없었습니다. 내가 git checkout
+ TAB인데도 여전히 분기가 아닌 디렉토리에 파일 목록이 표시됩니다. 나는 프로젝트 루트에 있습니다.
디렉토리 및 bash 명령에 대한 자동 완성이 정상적으로 작동하므로 Git에만 해당됩니다.
답변
좋아, 그래서 필요한 자식 자동 완성 스크립트를.
나는이 URL에서 그것을 얻었다 :
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
업데이트 : .bashrc
파일 을 축소하기 위해이 코드를 더 간결하게 만들고 있습니다.이 경우에는 다음을 사용합니다.
test -f ~/.git-completion.bash && . $_
참고 : $_
이전 명령에 대한 마지막 인수를 의미합니다. 그래서 . $_
실행 의미 – “가”인 .git-completion.bash
이 경우
이것은 여전히 Ubuntu와 OSX 및 스크립트 .git-completion.bash
스크립트가 없는 시스템에서 작동합니다 .
이제 git
Tab(실제로 git
TabTab) 매력처럼 작동합니다!
추신 : 이것이 박쥐에서 작동하지 않으면 chmod u+x ~/.git-completion.bash
필요한 권한을 부여 하기 위해 달려야 할 수도 있습니다 .
chmod
파일 권한을 수정하는 명령입니다u
파일을 소유 한 사용자, 기본적으로 작성자, 즉 사용자를 의미합니다.+
권한 설정 / 활성화 / 추가를 의미x
실행 권한, 즉 스크립트를 실행하는 기능
답변
어떤 사람들은 패키지 관리자를 사용하여 Mac OS 패키지의 설치, 업데이트 및 구성을 자동화하는 것을 선호합니다. 저는 패키지 관리자의 팬이며 Homebrew는 Mac OS 용 최고의 패키지 관리자라고 생각합니다 (일부는 사실상 Mac OS 패키지 관리자라고합니다).
Homebrew를 설치하고 나면 bash-completion 과 함께 git 을 간단히 설치할 수 있습니다 .brew install git bash-completion
그런 다음에 다음을 입력해야합니다 ~/.bash_profile
.
if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then
. `brew --prefix`/etc/bash_completion.d/git-completion.bash
fi
(참고 :이 설치가 404 오류로 실패하고 이미 자식이 설치되어 있으면이 추출 설치의 자식 부분을 제거하십시오.)
brew와 함께 git 및 bash-completion을 설치하는 방법에 대한 자세한 내용은 여기를 참조하십시오.
답변
이것을 터미널에서 실행하십시오 :
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
그런 다음이 작업을 수행하십시오.
vi ~/.bash_profile
이 줄을 추가하십시오 :
if [ -f ~/.git-completion.bash ]; then
. ~/.git-completion.bash
fi
그게 다야. 이것은 나를 위해 일했습니다.
답변
git
그리고 git-completion.bash
이미 (맥 OS 명령 줄 도구와 함께 xcode-select --install
). bash 자동 완성을 사용하려면 이것을 bash에 추가하십시오 ~/.bash_profile
.
[ -f /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash ] && . /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
이것은 또한 git 브랜치에 대해 자동 완성 기능을 활성화합니다.
답변
다음은 일부 혼란스러운 부분입니다. 추출 또는 포트가 설치되어 있지만 시스템 git in을 사용하고 /usr/bin/
있습니다. 이것을 확인하려면 :
which git
당신이 볼 경우 /usr/bin/git
다음 중 하나를 양조가 제대로 구성되지 않았거나 당신은 양조를 통해 자식을 설치하지했습니다.
brew를 통해 git을 설치하면 brew에 대해 bash 완료를 활성화하면 git에 대한 bash 완료도 활성화됩니다. 때문입니다 /usr/local/etc/bash_completion
실제로는 모든 것을 소싱 /usr/local/bash_completion.d
, 그리고 자식에 대한 양조 패키지가 자식 완료 스크립트를 설치합니다.
답변
“bash_completion”옵션을 활성화하여 MacPorts에서 bash 및 git을 설치할 수 있습니다. 아마도 git과 완료를 최신으로 유지하는 가장 쉬운 방법 일 것입니다.
http://denis.tumblr.com/post/71390665/adding-bash-completion-for-git-on-mac-os-x-snow-leopard
MacPorts를 설치하려면 : http://www.macports.org/install.php/
추가 정보
Linux 시스템에서 완료 설정을 찾으려면 /etc/bash_completion.d/git (긴 파일)를 확인하십시오. 완료 프레임 워크가 / etc / bash_completion (/etc/profile.d/bash_completion.sh; / etc / profile의 파일에서 제공)을 통해 소스 프레임 워크에서 제공하도록 설계 되었기 때문에 자체적으로 복사하는 것은 아마 작동하지 않습니다. .d는 / etc / profile에서 제공됩니다).
답변
소싱 후에도 git 완료가 부분적으로 손상된 경우 https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
git 버전을 업데이트해야 할 수도 있습니다.
예를 들어 git check
+를 입력 TAB
하면 올바르게 자동 완성 git checkout
됩니다. 그러나 git checkout
+를 입력하면 TAB
분기 목록이 표시되지 않았습니다 HEAD
.
나를위한 해결책은 내 git
버전 을 업데이트하는 것이 었습니다 . 나는 2.7.0에 있었는데, 분명히 최신 버전과 호환되지 않았습니다 git-completion.bash
. 나는 그것을 실행 brew upgrade git
하여 2.13.0으로 업데이트했으며 이제는 지점 이름을 자동 완성합니다.