내 Linux 시스템에는 Git을 사용하여 브랜치 자동 완성 기능이 있습니다.

[참고로 bash 완료가 아닌 git 분기 완료 (예 : 명령, 파일 등). 따라서 Lane의 대답 이 전혀 아닙니다.]

예를 들어 git checkout +를 입력 할 수 있습니다. TAB 및 분기 목록을 가져옵니다.

또는 git checkout feb* + TAB 를 입력하여 모든 “feb”로 시작하는 브랜치.

Mac에서이 기능을 어떻게 얻을 수 있습니까?

bash-completion/bash_completion를 다운로드하여 실행 해 보았습니다. bash-completion/bash_completion.sh.in 그러나 기쁨이 없습니다. 첫 번째는 declare: -A invalid_option에 대한 오류 메시지를 표시했습니다. 두 번째는 오류를 표시하지 않았습니다. 내가 + TAB 그래도 브랜치가 아닌 디렉토리에 파일 목록이 표시됩니다. 저는 프로젝트 루트에 있습니다.

디렉토리 및 bash 명령은 정상적으로 작동하므로 Git에만 해당됩니다.

댓글

  • 방금이 커뮤니티에 가입하여 ‘ 아직 답변하지 못했지만 ” oh-my-zsh ” 매우 유용하고 UI가 정말 마음에 듭니다. github.com/ohmyzsh/ohmyzsh 이것은 물론 zsh를 사용하는 사람들을위한 것입니다. ‘ Bash에서 작동하지 않는다고 가정합니다. ‘ …

Answer

알았으므로 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 && . $_ 

참고 : $_는 이전 명령에 대한 마지막 인수를 의미합니다. 따라서 . $_는 실행을 의미합니다. “it”는이 경우 .git-completion.bash입니다.

이것은 Ubuntu와 OSX 및 스크립트 .git-completion.bash 스크립트가없는 시스템

이제 git Tab ( 실제로는 git Tab Tab )가 매력처럼 작동합니다!

ps : 그렇지 않은 경우 “방망이없이 작업하지 마세요. chmod u+x ~/.git-completion.bash를 실행하여 필요한 권한을 부여해야 할 수도 있습니다.

  • chmod는 파일 권한을 수정하는 명령입니다.
  • u는 파일을 소유 한 사용자 (기본적으로 작성자)를 의미합니다.
  • +는 권한 설정 / 활성화 / 추가를 의미합니다.
  • x는 실행 권한, 즉 script

코멘트

  • 예, bash 스크립트를 추가 한 후 터미널을 다시 시작하면 작동합니다. m TabModels 폴더에 계속 자동 완성을 시도하는 이유가 궁금합니다. / div>를 사용하여 master에 자동 완성되도록합니다.
  • unix.stackexchange.com/q/도 참조하세요. 48862/10043 다른 팁
  • 수락 된 답변이 ‘ 누구에게도 작동하지 않는 경우 다음을 시도해보세요. source ~/.bash_profile 코드를 붙여 넣은 후. 터미널을 다시 시작해도 동일한 작업이 수행됩니다.
  • 감사합니다! 다른 작업을 시도했지만 아무것도 작동하지 않았습니다 (이 github.com/bobthecow/git-flow-completion/wiki/ … ). 귀하의 솔루션은 매력처럼 작동했습니다.)
  • (당신은 ‘ brew git는 없지만 Apple 기본값은

    ) brew install gitgit checunknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>]

  • 와 같은 이상한 오류가 발생하는 사람들을 위해 터미널을 다시 시작합니다.

답변

어떤 사람들은 Mac OS 패키지의 설치, 업데이트 및 구성을 자동화하기 위해 패키지 관리자를 사용하는 것을 선호합니다. 저는 패키지 관리자의 팬이며 Homebrew가 Mac OS를위한 최고의 패키지 관리자라고 생각합니다 (일부는 “사실상 Mac OS 패키지 관리자라고도합니다).

Homebrew를 설치 한 후에는 git bash-completion (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 오류로 실패하고 이미 git이 설치되어있는 경우이 brew 설치의 git 부분을 제거하십시오.)

추가 정보 여기에서 brew와 함께 git 및 bash-completion을 설치하는 방법에 대해 설명합니다.

댓글

  • git 그리고 bash-completion를 추가하는 것은 .git-completion.bash를 추가하는 것과 전혀 같지 않습니다. 그들은 다른 프로그램이고 아주 다른 일을합니다. 하나는 bash 명령을합니다. autocompletion과 다른 하나는 git 명령 autocompletion을 수행하고 ‘ nair가 만날 것입니다;)
  • 매력처럼 작동합니다. 감사합니다. ~/.bash_profile에 추가 한 스크립트를 사용하십니까?
  • 이 답변에 대해 다른 사람들이 말한 내용에도 불구하고 git 자동 완성 작업을 수행하게 한 것은 n 터미널.
  • ~/.bash_profile에 추가 할 줄은 homebrew의 출력에서 지정되었습니다. 위의 줄 대신 사용했습니다. 그런 다음 source ~/.bash_profile

Answer

터미널에서 실행 :

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 

그게 다입니다. 이것이 저에게 효과적이었습니다.

코멘트

  • (2 단계) 텍스트 편집기로 bash_profile을 여는 것을 선호하는 사람은 다음과 같이하십시오. open -e .bash_profile
  • 최신 Mac OS High Sierra에서는 ~/.bash_profile 파일이 ‘ 존재하지 않습니다. 그 ‘ 괜찮습니다. 파일을 만들고 거기에 if 스크립트를 저장하고 저장하세요. 나중에 셸을 다시로드하면 작동합니다.
  • 나. vi (항상 힘들어하는) 대신 open -e ~ / .bash_profile
  • 두 번째 단계에서는 이 링크

답변

gitgit-completion.bash는 이미 macOS 명령 줄 도구 (xcode-select --install)와 함께 제공됩니다. 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 브랜치에 대한 자동 완성이 사용됩니다.

댓글

  • 명령 줄 도구가 설치되어 있지만 ‘ 확실히 해당 파일은 설치되어 있지 않습니다. ‘ 제 경우에는 존재하지 않습니다. 하지만 brew와 함께하게되어 기쁩니다 (그리고 내 자식도 brew와 함께 있기 때문에 아마도 현명 할 것입니다).
  • 감사합니다! IMO, 녹색 확인 표시가있는 답이되어야합니다.
  • 가장 간단한 솔루션이며 저에게 적합합니다.
  • 이 방식은 저에게 효과적이지만 약간 다른 형식을 사용했습니다. . if [ -f /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash ]; then . /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash > /dev/null fi
  • 답은 효과가 있었지만 ~/.bash_profile에 주어진 줄을 추가 한 후 source ~/.bash_profile (특히 ~/.bash_profile 파일을 처음 만드는 경우)

답변

여러분을 혼란스럽게하는 부분은 다음과 같습니다. brew 또는 포트가 설치되어 있지만 . 이를 확인하려면 :

which git 

/usr/bin/git가 표시되면 양조가 “올바르게 구성되지 않았거나” brew를 통해 git을 설치하지 않았습니다.

brew를 통해 git을 설치 한 경우 brew에 대한 bash 완료를 활성화하면 git에 대한 bash 완료도 활성화됩니다. 이는 /usr/local/etc/bash_completion가 실제로 /usr/local/bash_completion.d의 모든 것을 소싱하고 git 용 brew 패키지가 거기에 git 완료 스크립트를 설치하기 때문입니다.

댓글

  • 이렇게 말이되지만 ” brew에 Bash 완성을 사용하도록 설정하는 방법 “? 당신은 ‘ 방법이 누락되었습니다. 이것은 답변의 일부 여야합니다.
  • simplified.guide/macos/bash-completion ,하지만 자동 완성이 몇 초 지연됩니다 … 이상 함

답변

Catalina 이상에서 Git 자동 완성 (Homebrew 사용)

macO가 bash에서 변경됨 에서 zsh 를 Catalina로 시작하는 기본 셸로 설정합니다.
따라서 zsh에 대한 특정 자동 완성 스크립트가 필요합니다.

Homebrew를 사용하여 설치하는 방법은 다음과 같습니다.

brew install zsh-completion 

Brew “의 zsh-completion에는 실제로 git-completion이 포함되어 있습니다.

자동 완성을 활성화하려면 ~/.zshrc에 작은 코드 블록을 추가해야합니다. 아직 존재하지 않는 경우 해당 파일을 사용자 폴더에 만들어야 할 수 있습니다. 참고 : 위 설치 스크립트의 출력은 추가 할 코드를 정확히 알려주므로주의 깊게 읽고 거기에서 복사하십시오. 여기에 작성한 이후로 업데이트 된 경우

if type brew &>/dev/null; then FPATH=$(brew --prefix)/share/zsh-completions:$FPATH autoload -Uz compinit compinit fi 

중요 :
설치가 완료되면 설치 스크립트의 출력을 읽습니다 .
It .zshrc에 코드를 추가하도록 지시 할뿐만 아니라 zcompdump 강제 재 구축과 같이 필요할 수있는 추가 작업에 대한 조언도 제공합니다. 그러나 대부분의 경우 추가 단계가 필요하지 않습니다.

댓글

  • 터미널은 매번 성가신 메시지를 표시합니다. ‘가 열렸습니다. zsh compinit: insecure directories, run compaudit for list. Ignore insecure directories and continue [y] or abort compinit [n]?하지만 작동합니다!
  • 이 커뮤니티에 가입하여 ‘ 아직 대답하지 않았지만 ” oh-my-zsh “가 매우 유용하다는 것을 알았고 UI가 정말 마음에 듭니다. github.com/ohmyzsh/ohmyzsh 이것은 물론 zsh를 사용하는 사람들을위한 것입니다. ‘ Bash에서 작동하지 않는다고 가정합니다. ‘ …

Answer

“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에서 가져옴).

Answer

소싱 후에도 git 완성이 부분적으로 손상된 경우 https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash, git 버전을 업데이트해야 할 수도 있습니다.

예 : git check +

, 올바르게 자동 완성됩니다. git checkout.하지만 git checkout + , 분기 목록이 표시되지 않고 HEAD 만 표시됩니다.

git 버전. 2.7.0을 사용 중이 었는데, 이는 최신 git-completion.bash와 호환되지 않는 것 같습니다. brew upgrade git, 2.13.0으로 업데이트했으며 이제는 prop 내 브랜치 이름이 잘못 자동 완성됩니다.

댓글

  • 같은 문제가 발생했지만 brew upgrade gitbrew link git (재정의 활성화 됨)
  • @Tope를 잡아 주셔서 감사합니다. updateupgrade로 변경했습니다.

답변

지금까지이 문제를 해결하기 위해 찾은 최고의 참고 자료는 iv id =의 SpinDance 입니다. “43e953db90”>

Connor Livingston :

git- complete.bash 스크립트가 컴퓨터에 없습니다. 위에서 제공 한 링크 ( this ) 및 파일의 git-completion.bash 라는 새 파일에 로컬 컴퓨터에 저장합니다. /usr/local/etc/bash_completion.d / 디렉토리. git-completion.bash 스크립트가있는 경우 컴퓨터에 있지만 /usr/local/etc/bash_completion.d / 디렉터리에 없으면 해당 디렉터리에 복사본을 만들어야합니다. 빠른 sudo cp /current/path/to/your/git-completion.bash /usr/local/etc/bash_completion.d/git-completion.bash 이 트릭을해야합니다. /usr/local/etc/bash_completion.d / 디렉토리에 대해 궁금한 사람들을 위해 : 새 완료 명령을 저장하기위한 것이며 아직 존재하지 않는 경우 만들어야 할 수도 있습니다. 이 시점에서 git-completion.bash 스크립트는 /usr/local/etc/bash_completion.d / 디렉토리의 로컬 시스템에 있어야합니다. 이제 ~ / .bash_profile 에서 가리켜 git 완료 스크립트를 bash에 연결합니다.

참고 : 이전 문장의 물결표는 컴퓨터의 홈 디렉토리를 나타냅니다. ~ / .bash_profile 에 다음 줄을 추가합니다. source /usr/local/etc/bash_completion.d/git-completion.bash 및 저장합니다. 마지막 단계는 bash 프로필을 다시로드하는 것입니다. 현재 bash 세션에서 source ~ / .bash_profile 를 실행하여이를 수행 할 수 있습니다.

답변

설치 a> zsh를 기본 셸로 설정하고 나중에 감사합니다. 🙂

댓글

  • 정확히 문제를 해결하기 위해-탭을 누른 후에도 분기 제안이 없습니다.
  • 실제로 oh-my-zsh 또는 별도의 플러그인 시스템이 전혀 필요하지 않습니다! Git 완성 기능은 기본적으로 제공되며 활성화하기 만하면됩니다.

답변

해보았습니다. 브랜치에서는 잘 작동하지만 git st + tab를 수행하면 다음과 같은 오류가 표시됩니다.

알 수없는 옵션 : –list-cmds = list-mainporcelain, others, nohelpers, alias, list-complete, config 사용법 : git [–version] [–help] [-C] [-c =] [–exec-path [=]] [–html-path] [–man-path] [–info-path] [-p | –paginate | –no-pager] [–no-replace-objects] [–bare] [–git-dir =] [–work-tree =] [–namespace =] []

인터넷을 검색 한 결과 .git-completion.bash--list-cmds가 최신 버전의 git 및 내 Mac에서 git 버전은 2.17.2

솔루션은 다음과 같습니다.

솔루션 1

  1. git --version 명령을 사용하여 git의 버전을 확인하세요.
  2. 그런 다음 URL에 제가 한 것과 동일한 버전 번호를 입력하세요.

    curl https://raw.githubusercontent.com/git/git/v2.17.2/contrib/completion/git-completion.bash -o ~/.git-completion.bash 
  3. 그런 다음 상위 답변과 동일한 단계를 따르고 ~/.bash_profile 에 아래 코드를 입력합니다. p>

    if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi 

솔루션 2

git 버전을 최신 버전으로 업데이트해야 작동합니다.

답변

대부분의 사용자는 xcode 명령 줄의 일부로 git를 설치합니다. /usr/bin/git 및 bash completio의 도구 git에 대한 n 규칙은 /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash에서 사용할 수 있습니다.

이 경우 Homebrew에서 git을 설치하거나 raw.githubusercontent.com에서 소스 git 완성 규칙을 설치할 필요가 없습니다. 다음과 같이 심볼릭 링크를 만드십시오.

cd /usr/local/etc/bash_completion.d/ ln -s /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash git 

참고 : 다음에서 bash-completion 패키지를 설치하고 구성했는지 확인하십시오. Homebrew.

Answer

macOS Catalina +의 경우 zsh :

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh -o ~/.git-completion.zsh 

그런 다음 ~/.zshrc를 다음으로 업데이트하십시오.

if [ -f ~/.git-completion.zsh ]; then . ~/.git-completion.zsh fi 

답변

.bashrc 파일을 찾습니다.

파일을 열고 추가합니다. 맨 아래 줄 :

source /etc/bash_completion.d/git

댓글

  • 동의합니다. ‘ 상대적으로 새로운 시스템 (OSX 10.10.3)에 /etc/bash_completion.d/ 폴더가 없습니다.
  • 만들기 시도
  • bash_completion이 아니라 git_completion이 다른 작업을 수행합니다.
  • @MichaelDurrant 작동합니다. Trust Me.;) prowrestlingtees.com / media / catalog / product / cache / 1 / image / …
  • @crmpicco /etc/bash_completion.d/git 생성에 대한 지침을 제공해 주시겠습니까? 귀하의 답변을 더 가치있게 만들 것입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다