[Git] 入力補完を設定して、Gitをより高速に利用しよう
こんにちは、@yoheiMuneです。
Gitをコマンドで利用する際に、あのコマンドなんだっけ、あのオプションなんだっけ、という経験がある方は多いのではないでしょうか。 今日は、Gitコマンドやオプションの入力補完を設定することで、そんな問題に取り組んでみようと思います。
まずは、入力補完を行うシェルを取得します。Github上のgitのレポジトリを取得します。
この入力補完がすごいところは、Gitコマンドのオプションも入力補完ができることです。 例えば、
最後までご覧頂きましてありがとうございました。
Gitをコマンドで利用する際に、あのコマンドなんだっけ、あのオプションなんだっけ、という経験がある方は多いのではないでしょうか。 今日は、Gitコマンドやオプションの入力補完を設定することで、そんな問題に取り組んでみようと思います。
Special Thanks to http://flic.kr/p/kyqTfi
入力補完をセットアップ
Linuxのコマンドを使っていて、入力補完ができるのって便利ですよね。 実は、Gitにも入力補完を行う仕組みが用意されています。Gitをコマンドで利用する方は、セットアップすると作業効率がUPしますよー。まずは、入力補完を行うシェルを取得します。Github上のgitのレポジトリを取得します。
$ git clone https://github.com/git/gitさすがはGit本体のレポジトリ。ちょっと重たいですね。クローンされるまで気長に待ちましょう。 Cloneできたら、レポジトリ内にある
git-completion.bash
というシェルを任意の場所にコピーして、ターミナル起動時などに自動的に実行されるようにします。# 以下のファイルが入力補完を有効にするファイルです # (gitレポジトリルート)/contrib/completion/git-completion.bash # 入力補完を有効にするファイルを、任意の場所にコピーします。 $ cp contrib/completion/git-completion.bash ~/local/tool/ # ~/.bashrcに、上記のファイルが実行されるように記載しておきます。 # (~/.bashrcにて、以下を記載する) # source $HOME/local/tool/git-completion.bash
git-completion.bash
を実行することで、gitコマンドの入力補完ができるようになるのです!
上記を設定したのちに、ターミナルを再起動するか、source ~/.bashrc
を実行すると、Gitコマンドの入力補完が有効になります。入力補完を使ってみる
実際に試してみるとこんな感じです。(以下は何らかのGitレポジトリ内でコマンドを利用した例です)
# TABを押すことで、入力補完を行うことができます。 # 例えば、gitと入力してスペースを置いてタブを押すと、たくさんのgitコマンドが表示されます。 $ git <tab> add config lkgr reset am credential log revert annotate credential-osxkeychain lost-found rm apply crsync merge runhooks archive crup mergetool send-email bisect describe mv shortlog blame diff name-rev show branch difftool notes show-branch bundle fetch p4 st checkout filter-branch peek-remote stage cherry format-patch pull stash cherry-pick fsck push status citool gc rebase submodule cl get-tar-commit-id reflog subtree cl-upload-hook grep relink svn clean gs remote tag clone help repack tar-tree cm imap-send replace try column init repo-config whatchanged commit instaweb request-pullたくさんの入力可能なコマンドが表示されましたね。これが表示されれば、うる覚えのコマンドも使いやすいですね。
この入力補完がすごいところは、Gitコマンドのオプションも入力補完ができることです。 例えば、
git log
のオプションを思い出すのは大変なことも多いですが、この入力補完を使えばオプションの指定が楽にできます。# gitコマンドを入力後、TABを押すと、利用可能なオプション候補一覧が表示されます。 # 以下では「--」から始まるオプションの一覧を表示しています。 $ git log --<tab> --abbrev --dirstat --max-parents= --pretty= --abbrev-commit --dirstat-by-file --merges --quiet --abbrev= --dirstat-by-file= --min-age= --raw --after= --dirstat= --min-parents= --relative-date --all --dst-prefix= --minimal --remotes --all-match --exit-code --name-only --reverse --author= --ext-diff --name-status --root --before= --find-copies-harder --no-color --shortstat --binary --first-parent --no-ext-diff --simplify-by-decoration --branches --follow --no-max-parents --simplify-merges --check --format= --no-merges --since= --cherry-pick --full-diff --no-min-parents --sparse --children --full-history --no-notes --src-prefix= --color --full-index --no-prefix --stat --color-words --graph --no-renames --summary --committer= --grep= --not --tags --cumulative --histogram --notes --text --date-order --ignore-all-space --numstat --topo-order --date= --ignore-space-at-eol --oneline --until= --decorate --ignore-space-change --parents --walk-reflogs --decorate= --inter-hunk-context= --patch-with-stat --word-diff --dense --left-right --patience --diff-algorithm= --max-age= --pickaxe-all --diff-filter= --max-count= --pickaxe-regexなかなかの便利ものですね。 利用頻度の高いコマンドは、Aliasに登録(詳しくは、こちら)しちゃいますが、時々しか使わないコマンド(マージの時に使う
git checkout --ours filename
など)は、この入力補完を使うことで、作業がはかどりそうです。最後に
以上簡単ですが、Gitコマンドの入力補完のセットアップと利用方法を、ブログで扱ってみました。 このようなちょっとした改善を積み重ねると、開発スピードが上がって良いですよね。 これからも色々とブログにアウトプットしていきたいと思いますので、どうぞ宜しくお願いします。最後までご覧頂きましてありがとうございました。