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
Tab
Modelsフォルダーへのオートコンプリートを試み続けるのか疑問に思っていました。 / div>を使用して、master
にオートコンプリートします。 - unix.stackexchange.com/q/も参照してください。別のヒントについては48862/10043
- 受け入れられた回答が’だれにも機能しない場合は、次のようにしてください:
source ~/.bash_profile
コードを貼り付けた後。ターミナルを再起動しても同じことが行われます。 - ありがとうございます!他のことを試しましたが、何も機能しませんでした(この github.com/bobthecow/git-flow-completion/wiki/ … )。あなたのソリューションは魅力のように機能しました;)
- (’醸造
git
はありませんが、Appleのデフォルトはgit
)brew 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番目のステップでは
このリンク
を実行してください。
回答
git
とgit-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を使っているので、おそらくもっと賢いです)。
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に感謝します。
update
をupgrade
に変更しました。
回答
この問題を解決するために私が見つけた最良のリファレンスは、 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
-
git --version
コマンドを使用してgitのバージョンを確認します -
次に、私が行ったのと同じバージョン番号をURLに入力します
curl https://raw.githubusercontent.com/git/git/v2.17.2/contrib/completion/git-completion.bash -o ~/.git-completion.bash
-
次に、一番上の回答と同じ手順に従い、以下のコードを
~/.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
の作成手順を教えてください。それはあなたの答えをより価値のあるものにするでしょう。