Gitを使い始めたらやっておきたい便利な設定いろいろ
こんにちは、中川です。
Gitを使い始めてから、Subversionを使う機会がめっきり減ったこの頃です。
Gitだとローカルだけで簡単に使い始められるのもいいですが、気軽につくれるbranchや、mergeのしやすさがたまりませんね。
インストール直後の状態でも普通に利用できますが、
ちょっとした設定でさらに使いやすくなる方法をご紹介したいと思います。
※今回ご紹介する内容はいずれも私のMacBook上での動作確認となり、Windows環境は考慮していませんがご容赦ください。
■ユーザー名とE-mailアドレスの設定
まずは、最初にユーザ名と、メールアドレスを設定してしまいましょう。
$ git config --global user.name "yoshiki"
$ git config --global user.email "yoshiki@example.com"
■カラーリング
git status や git diffなど 、デフォルトでは味気ない文字がズラズラと画面に表示されますが、それを見やすいようにカラーリングすることができます。
$ git config --global color.ui auto
■gitコマンドのエイリアスの設定
Gitのよく使うコマンド達を短く呼び出せるように、エイリアスを設定します。
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.st status
$ git config --global alias.br branch
$ git config --global alias.hist 'log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short'
これで、
$ git st
とか、
$ git ci -m "test commit"
などと、簡単に呼び出せます。ちょっとした差ですが頻繁に呼び出すコマンド達なので、ありがたみが実感できます。
ちなみに、「git hist」のエイリアスは、以下のようなツリー表示のログが簡単に確認できて便利です。
■自分用のgitignore設定追加
自分の開発環境だけでできてしまうようなファイルのために、
プロジェクト内の.gitignoreに設定追加してしまうと他の人に嫌がられますよね。
そこで、自分用に追加でホームディレクトリの.gitignoreファイルを利用するようにします。
$ git config --global core.excludesfile ~/.gitignore
私は、「.DS_Store」(Macでできるファイル)や「/tags」(サクラエディタ用タグファイル)などを指定しています。
■ここまでのGit設定内容一式。
ここまでのコマンドでの設定作業は、ホームディレクトリの.gitconfigに以下のように直接記述でも可能です。
~/.gitconfig
[user]
name = yoshiki
email = yoshiki@example.com
[color]
ui = true
[alias]
co = checkout
ci = commit
st = status
br = branch
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
[core]
excludesfile = ~/.gitignore
ここまではGitのコンフィグでしたが、以降はbashの設定を行っていきます。
■bashのプロンプトにGitのbranch名を表示させる。
Gitで管理しているディレクトリにいるときに、bashに常にbranch名を表示するようにします。これでうっかり別のbranchで作業していたなんてことがなくなりますね。
git-completionを導入している場合、.bashrcに、以下のように簡単にbranch名が表示できます。
source ~/git-completion.bash
PS1="\h@\u:\W\$(__git_ps1) \$ "
~/.bashrc
function parse_git_branch {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
function precmd() {
PROMPT="\h@\u:\W\$(parse_git_branch) \$ "
}
function proml {
PS1="\h@\u:\W\$(parse_git_branch) \$ "
}
proml
※「\$(parse_git_branch)」以外の表示内容は適宜変更してください。上記は私のmac上の設定です。
※設定を反映します。
$ source ~/.bashrc
これで、Gitで管理しているディレクトリに移動すると以下のように「(master)や(hoge_branch)」といった、
ブランチ名が表示されるようになります。
mac@air:~ $ cd Desktop/work/blog/
mac@air:blog(master) $ git branch ・・・・・・・・・←(master)表示
hoge_branch
* master
mac@air:blog(master) $ git checkout hoge_branch
Switched to branch 'hoge_branch'
mac@air:blog(hoge_branch) $ ・・・・・・・・・・・・←(hoge_branch)表示
mac@air:blog(hoge_branch) $ git branch
* hoge_branch
master
参考:http://railstips.org/blog/archives/2009/02/02/bedazzle-your-bash-prompt-with-git-info/
■bashでGitのコマンド補完
Gitのコマンドやオプションの補完を行えるようにします。
以下のURLからファイルをダウンロードしてホームディレクトリなどに保存します。
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
そのファイルを、.bashrcで読み込むように設定します。
~/.bashrc
source ~/git-completion.bash
※設定を反映します。
$ source ~/.bashrc
ためしに「git 」(gitの後にスペース)と打って、タブを連打するとズラズラと候補がでてきます。ちなみにコマンドだけでなく、オプションも補完してくれます!
$ git 「ここでタブを押す」
add cherry-pick fetch instaweb relink st
am ci filter-branch log remote stage
annotate citool format-patch merge repack stash
:
:
$ git log --「ここでタブを押す」
--abbrev --dirstat --max-parents= --pretty=
--abbrev-commit --dirstat-by-file --merges --quiet
--abbrev= --dirstat-by-file= --min-age= --raw
:
:
以上、どれもさくっと簡単に設定できますのでぜひ試してみてください。
他にも、もっと便利な設定や使い方がありましたら是非教えていただければと思います。