Git
GitHub
dotfiles
効率化
gitconfig

まだ長々しいコマンド打ってるの?git編(gitconfig)

はじめに

gitをコマンドで扱う人向けの記事です。
だいたいコマンドを使い始めて一ヶ月くらいたつと打つのが、かったるくなってきます。。。


git commit
git checkout -b
git stash apply

ながくないですか。。?

で、今回の記事は、これを
g ci
g chb
g ssap

に短縮して楽しましょうという方法です。

gitconfig

すぐコピペで使えるように最初に上げておきます。

gitconfig は mac では デフォルトでは~/.gitconfigにあります。
このファイルを編集して、保存すれば設定が反映されます。無ければ作成しましょう。

何でgit commitg ciなの?、g cmでしょていう人は、自分好みに変えちゃってくださいまし。

以下のファイルは、こちらにも上がっています。
https://github.com/kou0123/dotfiles

~/.gitconfig
[alias]
    #alias
    as = !git config --get-regexp alias
    #diff
    d = diff
    d1 = diff HEAD~
    d2 = diff HEAD~~
    dc = diff --cached
    #commit
    ci = commit
    cia = commit -amend
    cimix = commit --amend --no-edit
    cim = commit -m
    #push
    ps = push
    #pull
    pl = pull
    plr = pull --rebase
    #reset
    re = reset
    rehe = reset HEAD
    reha = reset --hard
    res = reset --soft
    #log
    l = log
    ls = log --stat
    lo = log --oneline
    #show
    sh = show
    #stash
    ss = stash
    ssap = stash apply
    sspp = stash pop
    ssl = stash list
    sssh = stash show
    #status   
    st = status
    #checkout
    ch = checkout
    chb = checkout -b
    #branch
    br = branch
    #add
    ad = add
    ada = add .

    [mergetool "vscode"]
    cmd = code --wait $MERGED
    [diff]
    tool = vscode
    [difftool "vscode"]
    cmd = code --wait --diff $LOCAL $REMOTE
~/.bashrc
alias g='git'

各機能説明

基本編

~/.gitconfigにエイリアスを設定する事によって、git branch checkoutgit chb で打つことができます。

さらに~/.bashrcalias g='git'をかくと、g chbまで短縮することができます。こちらも無ければ作成しましょう。source ~/.bashrcで設定反映させることをお忘れなく。

余談ですが、

~/.bashrc
alias g='git'
alias re = 'source ~/.bashrc'

こちらも便利ですよ。

alias

  • 自分が設定したエイリアス情報を確認できます。自分の定めたエイリアス何だっけ?がよくあるので。
as = !git config --get-regexp alias
cmd
g as

alias.d diff
alias.d1 diff HEAD~
alias.d2 diff HEAD~~
alias.dc diff --cached

diff

  • addしたファイルのdiffを確認できます。
dc = diff --cached
  • HEADからn番目のコミットとの差分を確認できます。
d1 = diff HEAD~
d2 = diff HEAD~~

commit

  • 直前のcommitに、addしたファイルを混ぜる。これ地味に便利です。
  • commitし忘れたファイルや微修正したファイルに使用してみてください。
cimix = commit --amend --no-edit

log

  • g ls は 編集したファイルを含んだコミット履歴の表示です。
  • g lo は コミットメッセージのみのコミット履歴の表示です。
ls = log --stat
lo = log --oneline

stash

  • stashstash pop or applyはコンビでよく使うので、短縮させています。
ss = stash
sspp = stash pop
ssap = stash apply

add

  • add -A or . もよく使うので、短縮させています。よく使います。
ada = add .

difftool

  • difftoolをvscodeにすることができます。git difftoolで使えます。
  • winmergeをdifftoolにするよりもおすすめです。
[mergetool "vscode"]
cmd = code --wait $MERGED
[diff]
tool = vscode
[difftool "vscode"]
cmd = code --wait --diff $LOCAL $REMOTE