Homebrew’s `git` not using completion

后端 未结 18 1859
盖世英雄少女心
盖世英雄少女心 2020-12-22 16:25

When using OSX’s git, after I modify a file I can simply do git commit , and that’ll auto complete the file’s name to the one that was modified. Howe

相关标签:
18条回答
  • 2020-12-22 16:51

    You're looking for:

    brew install git bash-completion
    

    As warpc's comment states, you'll need to add the following to your ~/.bash_profile to get homebrew's bash-completion working:

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

    The above is mentioned in the caveats when you install the bash-completion formula.


    Note: if you are using Bash v4 or later (via brew install bash) then you're going to want to use brew install bash-completion@2, to enable tab completion add the following to ~/.bash_profile as described in the caveats:

    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"
    

    The additional export is necessary for git, docker, youtube-dl, and other completions which may be included in the $(brew --prefix)/etc/bash_completion.d/ directory.

    0 讨论(0)
  • 2020-12-22 16:55

    If you used homebrew to install git, then probably there is no need to install anything to support git completion. "git-completion.bash" file is somewhere (mine was here: /usr/local/git/contrib/completion/git-completion.bash)

    All you need to do is to find the file: sudo find / -type f -name "git-completion.bash"

    Then source its path in your .bash_profile. For example I needed to add this line to my ~/.bash_profile:

    source /usr/local/git/contrib/completion/git-completion.bash
    

    Don't forget to source your ~/.bash_profile or reopen your terminal ;)

    from: how-enable-git-tab-completion-bash-mac-os-x

    0 讨论(0)
  • 2020-12-22 16:57

    In case anyone else makes my dumb mistake, try brew install git. I was using the git that comes with Xcode and didn't realize that I had never installed Homebrew's git to get the autocompletions.

    0 讨论(0)
  • 2020-12-22 16:58

    for some reason I was missing the file at $(brew --prefix)/etc/bash_completion so @Graham Perks' correct answer didn't work for me

    It ended up the fix in my case was:

    brew unlink bash-completion
    brew link bash-completion
    
    0 讨论(0)
  • 2020-12-22 17:00

    Found a working solution. It's very recent (authored 16 hours ago, and committed 2 hours ago), and it comes directly from homebrew.

    brew install git --without-completions

    Just tried it, and it finally works as intended.

    0 讨论(0)
  • 2020-12-22 17:01

    Enable Auto Completion of GIT commands on MAC-OS Mojave 10.14 I am a developer and use GIT from the command line all of the time. When I consider the development perspective, I used to execute a lot of commands using the command line for GIT operations. Most of the time it is very annoying that MAC OS doesn't have automatic support for the command completion which I partially support. as well as the command suggestions, which means what are the commands available for typed characters. So it is very troublesome to type very long command and mostly repetitive task as typo going wrong. :(

    Tab completion would certainly be faster and easier. Unfortunately, the default installation of git on some Mac computers doesn't have tab completion enabled.

    So that I was searching for a fix for the problem and there are several solutions found from the web search such as StackOverflow, GitHub as well as from the medium. Unfortunately, those solutions did not work for me and got frustrated with trying different solutions so many times.

    I was searching deeply and trying out different solutions and fortunately, it is an easy fix. Below are the steps I have collected from several posts and finally it worked as expected. So I hope to share with others who have this problem like me.

    f you go to the web search and you can find many solutions which mentioned the git completion bash file. Even GitHub guide as well. But I suggest you check first if the git-completion.bash file is already in your MAC computer with the git-core or something else which came from installation. you can use below command.

    sudo find / -type f -name "git-completion.bash"
    

    you will get below results. (may have some difference according to the content)

    /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
    /Users/Dilanka/git-completion.bash
    /Users/Dilanka/.oh-my-zsh/plugins/gitfast/git-completion.bash
    /Users/Dilanka/Downloads/git-completion.bash
    

    I suggest you to pick which installed from git-core

    If the git-completion.bash script doesn't exist on your machine, please retrieve it from the below provided above and save it to your local machine in a new file called git-completion.bash in the /usr/local/etc/bash_completion.d/ directory.

    https://git-scm.com/book/en/v1/Git-Basics-Tips-and-Tricks

    If you use the Bash shell, Git comes with a nice auto-completion script you can enable. Download it directly from the Git source code at

    https://github.com/git/git/blob/master/contrib/completion/git-completion.bash

    If the git-completion.bash script exists on your machine, but is not in the /usr/local/etc/bash_completion.d/ directory, you should create that directory and copy the file into it. Below command will do the job:

    sudo mkdir /opt/local/etc/bash_completion.d
    sudo cp /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash /usr/local/etc/bash_completion.d/git-completion.bash
    

    After the completion of above. The git-completion.bash script should exist on your local machine in the/usr/local/etc/bash_completion.d/ directory.

    Now you need to refresh your profile using below command. It will load your added bash file to the terminal context.

    source ~/.bash_profile
    

    Great!!! you have done it. Just start the terminal window and try it. Just type "git sta" it will show suggestions as below:

    git sta
    stage    stash    status
    git chec<TAB> will show git checkout
    

    see my GitHub post here:

    https://github.com/DIL8654/Enable-Auto-Completion-of-GIT-commads-on-MAC-OS-Mojave

    See my Medium post here:

    https://medium.com/@dilanka85/enable-auto-completion-of-git-commands-on-mac-os-mojave-10-14

    0 讨论(0)
提交回复
热议问题