- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

git

はじめに Edit

分散バージョン管理ソフトgitで補完する方法。

例えば、

git checkout natotoka_feature

などとブランチ名補完面倒くさい!!とかいう場合です。

後述する設定方法で、

git co(タブキー) nato(タブキー)

などというように補完ができるようになります。git coの部分は alias などを使った方がいいと思いますが。

cygwin gitの再読み込みの場合 Edit

まずは、cygwinのセットアップで git-completion を導入ます。

そして、HOMEに該当ファイルをコピーします。

$ cp /etc/bash_completion.d/git ~/.git-completion.bash

※コピーしなくていいんじゃね?と思ってたんですが、/etc/bash_completion.d/git の中にはコピーして使ってね、とあるのでこうしてます

次に、~/.bashrc以下を追加して

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

shellを再起動するかもしくは

. ~/.bashrc

して.bashrcを再読み込みすればOK

その他の環境の場合 Edit

参考リンクを参照:Git入門 - Gitのコマンド補完

bashのプロンプトを書き換える方法もあるみたいです。 Edit

__git_ps1という文字列をPS1に設定することで、bashのプロンプトにブランチ名を表示することもできるようです。

例えば、Ubuntu では ~/.bashrcの中に以下のようなPS1を定義するところがありまして、

    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

j
これだとプロンプトが以下のような表示なっていますが、

pubuntu@pubuntu:/home/pubuntu/my_project$ ls -laF .

例えば、以下のような感じで、__git_ps1を挿入してみると…

    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__git_ps1 "(%s)")\$ '

以下のようにカッコ内に現在のブランチなどが表示されるはずです。

pubuntu@pubuntu:/home/pubuntu/my_project(master)$ ls -laF .

※無駄に改行されたり、環境によってはいろいろおかしい件…

(PS1は個々でカスタマイズしてあったり、そのままだと個々のPS1に直接組み込まないといけないので例を上げにくいです。
既存のPS1に後付で簡単に挿入できるスクリプトを作りたいところです(後ろにくっけるだけでもいいかもしれないけど))

__git_ps1のカスタマイズ Edit

上記に書いたようにPS1の中に、__git_ps1を仕込むと、gitのブランチ名などが表示できますが、
オプションを指定することで表示をカスタマイズできます。

export GIT_PS1_SHOWDIRTYSTATE=1 GIT_PS1_SHOWUNTRACKEDFILES=1 GIT_PS1_SHOWSTASHSTATE=1

と思ったけど、うまく行かない罠 orz

参考:

参考リンク Edit


No comment. Comments/git/ブランチ名など等gitコマンドの補完方法?

Name:

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2010-07-23 Fri 18:09:35 JST (2621d)