Linuxマシンでは、Gitを使用してブランチのオートコンプリートを 実行しています。

[ gitブランチの完了、bashの完了ではない (コマンド、ファイルなど)。したがって、レーンの回答はまったくありません]

たとえば、git checkout +と入力できます。 TAB をクリックしてブランチのリストを取得します。

または、git checkout feb* + TAB と入力してすべてを取得できます「feb」で始まるブランチ。

Macでこの機能を利用するにはどうすればよいですか?

bash-completion/bash_completionをダウンロードして実行してみました。 bash-completion/bash_completion.sh.inしかし喜びはありません。最初のメッセージはdeclare: -A invalid_optionに関するエラーメッセージを表示しました。2番目のメッセージはエラーを表示しませんでした。 + TAB でも、ブランチではなくディレクトリ内のファイルのリストを取得しています。プロジェクトルートにいます。

ディレクトリのオートコンプリートとbashコマンドは正常に機能しているため、Gitに固有です。

コメント

  • このコミュニティに参加したばかりなので、’まだ回答できませんが、見つかりました” oh-my-zsh “非常に便利で、UIがとても気に入っています:github.com/ohmyzsh/ohmyzsh もちろん、これはzshを使用している人向けです。 ‘ ‘バッシュでは機能しないと思います…

回答

わかりました。そのため、 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は、実行権限、つまり、スクリプト

コメント

  • はい、bashスクリプトを追加した後にターミナルを再起動すると機能しました。 m TabModelsフォルダーへのオートコンプリートを試み続けるのか疑問に思っていました。 / div>を使用して、masterにオートコンプリートします。
  • unix.stackexchange.com/q/も参照してください。別のヒントについては48862/10043
  • 受け入れられた回答が’だれにも機能しない場合は、次のようにしてください:source ~/.bash_profileコードを貼り付けた後。ターミナルを再起動しても同じことが行われます。
  • ありがとうございます!他のことを試しましたが、何も機能しませんでした(この github.com/bobthecow/git-flow-completion/wiki/ … )。あなたのソリューションは魅力のように機能しました;)
  • (’醸造gitはありませんが、Appleのデフォルトはgitbrew install git git 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部分を削除するだけです)

詳細gitとbashのインストールについて-ここでbrewを使用して補完します。

コメント

  • gitそしてbash-completionを追加することは、.git-completion.bashを追加することとまったく同じではありません。これらは異なるプログラムであり、まったく異なることを行います。1つはbashコマンドを実行します。オートコンプリートともう1つはgitコマンドのオートコンプリートを実行し、’トウェインが出会う場所です;)
  • チャームのように機能します。ありがとうございます。 ~/.bash_profileに追加してくれたスクリプトの使用?
  • この回答について他の人が言ったことにもかかわらず、それはgitオートコンプリートを機能させたものです。 nターミナル。
  • ~/.bash_profileに追加する行は、自作の出力で指定されていることに注意してください。上記の行の代わりにそれらを使用しました。次に、コマンドsource ~/.bash_profile

回答

ターミナルでこれを実行します:

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
  • 未使用のMacOS High Sierraでは、~/.bash_profileファイルは’存在しません。その’問題ありません。ファイルを作成し、そのifスクリプトをそこに配置して保存します。後でシェルをリロードすると、機能します。
  • これは私。vi(私はいつも苦労している)の代わりに、open -e〜 / .bash_profile
  • を実行してください。

  • 2番目のステップでは

    このリンク

回答

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ブランチのオートコンプリートも有効になります。

コメント

  • コマンドラインツールがインストールされていることは確かですが’ id = “25c8b247a9”>

私の場合は存在しません。でも、brewを使って幸せです(そして私のgitも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に追加した後は、~/.bash_profileも実行することを忘れないでください。 div id = “03eebd680a”> (特に、~/.bash_profileファイルを初めて作成する場合)
  • 回答

    混乱しているのは次のとおりです。brewまたはportsがインストールされていますが、。これを確認するには:

    which git 

    /usr/bin/gitが表示されている場合は、brewが正しく構成されていないか、あなたが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 をカタリナで始まるデフォルトのシェルとして使用します。
    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 

    重要:
    インストールが完了したら、インストールスクリプトの出力を読み取ります。
    それ.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では機能しないと思います…

    回答

    「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 +

    の場合、git checkoutは正しくオートコンプリートされます。ただし、git checkout + 、ブランチのリストは表示されず、HEADのみが表示されました。

    修正は、gitバージョン。2.7.0を使用していましたが、最新のgit-completion.bashと互換性がなかったようです。brew upgrade git、2.13.0に更新し、現在はpropブランチ名が自動的にオートコンプリートされます。

    コメント

    • 同じ問題が発生しましたが、brew upgrade gitおよびbrew link git(オーバーライドが有効になっている場合)
    • catch @ Topeに感謝します。 updateupgradeに変更しました。

    回答

    この問題を解決するために私が見つけた最良のリファレンスは、 SpinDance 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 を実行します。

    回答

    oh-my-zsh そして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 | -ページ付け| –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

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

    解決策2

    gitバージョンを最新に更新してみてください。そうすれば機能するはずです。

    回答

    ほとんどのユーザーは、xcodeコマンドラインの一部としてgitをインストールします/usr/bin/gitのツールとbashcompletio ngitのルールは/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パッケージをインストールして構成したことを確認してください。自作。

    回答

    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動作します。信頼してください。;) prowrestlingtees.com / media / catalog / product / cache / 1 / image / …
    • @crmpicco /etc/bash_completion.d/gitの作成手順を教えてください。それはあなたの答えをより価値のあるものにするでしょう。

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です