【初心者でもOK!】gitコマンドのaliasを設定して楽をする方法
皆さんgit
のaliasというのをご存知ですか?
例えばgitコマンドを打つ際にgit status
と打つところをgit st
で済ませたり、
git checkout develop
をgit ch develop
で済ませる事が出来ます。
gitのaliasとは
gitのaliasとは、git
コマンドを省略して書けるようにするものです。
(ex:git status
=> git st
)
status
やcheckout
のような良く使用するコマンドをaliasに登録するだけで、コマンドの入力時間もタイプミスも減らせて時短に繋がります。
まだaliasを登録した事がない人はとりあえず↓をターミナルで叩き、
1 |
$ git config --global alias.st status |
Gitのリポジトリフォルダでgit status
ではなくgit st
と入力してみて下さい。
alias の便利さがご理解いただけるかと!
gitのaliasを設定する方法
aliasの影響範囲について
Gitのaliasを設定する際に、コマンドを変更することで影響範囲が以下3種類のように変わります。
影響範囲 | 設定が記載されるファイル | コマンド例 |
---|---|---|
マシン全体(全ユーザが対象) | /etc/gitconfig | git config --system alias.st status |
現在のユーザのみ | ~/.gitconfig | git config --global alias.st status |
特定リポジトリのみ | <特定リポジトリ>/.git/config | git config alias.st status |
3種類存在しますが、基本真ん中の--global
のみ、該当するファイル(~/.gitconfig)も含め覚えておけば問題ないと思います!
理由としては
- ユーザを切り替えた際には、そのユーザ毎にaliasを変更するべき(な気がする)
- リポジトリ毎にgitのaliasを登録し直す事は少ない
ためです。
aliasを設定する
例えばstatus
をst
にcheckout
をch
にする場合、ターミナルで以下のように入力するとaliasを設定出来ます。
1 2 3 4 5 |
# git statusのaliasを設定する $ git config --global alias.st status # git checkoutのaliasを設定する $ git config --global alias.ch checkout |
成功すると~/.gitconfig
に記載されるため、
1 2 3 4 5 6 7 8 9 |
# lessでgitconfigの内容を確認 $ less ~/.gitconfig ・ ・ [alias] st = status ch = checkout ・ ・ |
このように alias が設定されている事が確認出来ます。
もちろん vim ~/.gitconfig
のようにして直接ファイルを編集しても設定が出来るので、私は基本この方法を使ってます。
また先ほどのコマンドでaliasを登録する場合、
空白を1つ含む場合は問題なく登録出来ますが、2つ以上空白を含むような内容をaliasとして登録する際はその内容を「''」(シングルコーテーション)や「""」(ダブルコーテーション)で囲む必要があります。
1 2 3 4 5 6 7 8 |
# 登録成功(空白を1つ含む場合) $ git config --global alias.cm commit -m # 登録失敗(空白を2つ含む場合) $ git config --global alias.stb status --branch --short # 登録成功(空白を2つ含んでも「''」「""」で囲めば登録可能) $ git config --global alias.stb "status --branch --short" |
gitのaliasで外部コマンドを実行する
外部コマンドとはgit
以外のコマンド(echo
やls
など)も実行出来るようにすることです。
ターミナルに直接コマンドを打つのと同じような事がgitのaliasを使って実現出来ます。
例えば以下のように~/.gitconfig
に設定すると
1 2 |
[alias] echo = !echo hello |
1 2 |
$ git echo hello |
となります。
さすがに誰が使うんだ?て内容ですが。笑
また、この機能を使えば|
(パイプ)も使えるので、git
コマンドで表示された結果に対してパイプを使う、といった事も出来ます。
例えば以下のような場合、git branch -a
で追跡ブランチも含めて表示し、grep
を使いremote
という文字を含むもののみを表示するため、追跡ブランチのみを表示出来ます。
1 2 |
[alias] brr = !git branch -a | grep remote |
1 2 3 |
$ git brr remotes/origin/develop remotes/origin/master |
あとがき
gitのaliasを登録するとものすごく時短が出来るので皆さんも設定してみて下さい。