💻

git + gh の環境設定

2021/04/07に公開

自身のgit関連の設定

に関してまとめる

git

alias

br = branch --verbose --verbose --color --sort=-authordate
co = checkout
d = diff --histogram
f = fetch
l = log --oneline
n = now --all --stat
s = status -sb
undo = reset --soft HEAD~

スナップショット用途でこまめにcommitして git rebase -i でまとめることが多いので、git-nowを利用している
https://github.com/iwata/git-now

$ git n
[master 351631f] [from now] 2021/04/06 22:31:19
1 file changed, 1 insertion(+), 1 deletion(-)

gh

以前までは hub を利用していたが、公式の GitHub CLI に移行することにした
https://cli.github.com/manual/

※ 該当のコミットを表示する hub browse 差分表示用の hub compare の代替が gh コマンドには無いが許容する

主な用途はissue/PRの閲覧、作成、 hub よりも出来ることは少ないがCUIでissue/PRを作る時のインターフェースが丁寧だったりブラウザでプレビュー出来るのが良い

repo

alias: gh o

# カレントディレクトリのリポジトリ内容の閲覧
$ gh repo view --web

pr

alias: gh co

# プルリクエストのブランチへのチェックアウト
$ gh pr checkout {<number> | <url> | <branch>}

# 自分の作成したプルリクエストの一覧をインタラクティブ検索
$ gh pr list -s all -a <自分のアカウント名> | fzf
# PRを作成しpush後に自動的にブラウザで開く
$ gh pr create -w

issue

# 自分の作成したイシューの一覧をインタラクティブ検索
$ gh issue list -s all -a <自分のアカウント名> | fzf

api

gh pr view [<number> | <url> | <branch>] [flags] ではでコミットハッシュからPRを見ることができないが、GitHub GraphQL APIを実行することで対応可能[1]

alias:

# 任意のコミットハッシュから対応するPRの番号を返す
$ gh searchpr <コミットハッシュ>

# 任意のコミットハッシュから対応するPRをブラウザで表示する
$ gh openpr <コミットハッシュ>

tig

key-binding:

# P: 任意のコミットハッシュから対応するPRをブラウザで表示する
bind main P !@gh openpr %(commit)
bind blame P !@gh openpr %(commit)

# R: 選択中のcommitを基点にrebaseする
bind main R !git rebase -i %(commit)
脚注
  1. https://blog.agile.esm.co.jp/entry/2021/01/29/171120 ↩︎

Discussion