TIL blog

Data Mining(Machine Learning) Engineer 3年目 技術ネタ, その他学んだことのアウトプット用

git のエイリアス紹介

TL;DR;

世の中のエンジニアのalias設定 - Qiita の記事がqiitaでバズっていたので自分の gitの エイリアス設定を整理, 見直しがてら公開してみようと思った。
項目ごとに簡単なコメントもつけているので, 参考になるものがあったらどうぞ使ってください。

参考元

この辺りを参考にして人のdotfilesとかを見て適宜付け足していった気がする。

一覧

gist.github.com

alias一覧

最近は使わなくなったが alias設定した当初は, これを使ってちょこちょこエイリアスを確認していた。

  # aliasの一覧を表示
  alias = !git config --get-regexp '^alias\\.' | sed 's/alias\\.\\([^ ]*\\) \\(.*\\)/\\1\\\t => \\2/' | sort

省略形

# abbr
  # interactive にadd
    a = add -p
  # 作業中のものを 全部addして status確認
    aa = !git add -A && git s
    b = branch
  # 最新のcommit とcommit hashをあわせて表示
    bb = branch -vv
    c = checkout
    cam = commit --amend
    cm = commit -m
    cp = cherry-pick
    s  = status --short --branch
    ss = status
    sh = show

diff系

# diff
    d  = diff
    d1 = diff HEAD~
  # staging(addした) diffを確認
    dc = diff --cached
  # 単語単位でdiffを確認
    df = diff --word-diff

log系

  #log
    l = log
  # merge履歴などをグラフィカルに表示
    lt = log --graph -n 20 --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(green)- %an, %cr%Creset'
  # git log + commit ごとの diff --stat
    ll = log --stat --abbrev-commit
  # 直近のcommit 確認用 
    lo = log --oneline -n 20
  # head commit log
    ls = log --stat --abbrev-commit -n 1
  # head commit log + diff --stat
    lss = show HEAD

tig を使うほどでもない時に使う

github.com

wip系

たしか自作。割り込みのタスクが入ったときなどに現在の作業状況をwipでcommitするのに使う。

# wip
    wip = !git add -A && git commit -m 'wip'
    unwip = reset --soft HEAD~

stash系

# stash
    st = stash
    sp = stash pop

fix系

# fix
    amend = commit --amend -C HEAD
    unstage = reset -q HEAD --
    # 編集中のfileを HEADと同じ状態に戻す
    discard = checkout --
    uncommit = reset --mixed head~

hub系

hub はgithubcli連携するためのtool https://github.com/github/hub

## hub alias
  # github でリポジトリを開く
    open = !hub browse
  # 自分が作ったPRを開く
    byme = !hub browse -- pulls/$(git config user.username)
  # 自分にassignされたPRを開く
    tome = !hub browse -- pulls/assigned/$(git config user.username)
  # 現在いるブランチのPull Requestを確認する
    see  = !hub browse -- pull/$(git symbolic-ref --short HEAD)
  # 指定したcommitを追加した PRを開く
    openpr = "!f() { hub browse -- `git log --merges --oneline --reverse --ancestry-path $1...master | grep 'Merge pull request #' | head -n 1 | cut -f5 -d' ' | sed -e 's%#%pull/%'`; }; f"