💻
git + gh の環境設定
自身の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を利用している
$ git n
[master 351631f] [from now] 2021/04/06 22:31:19
1 file changed, 1 insertion(+), 1 deletion(-)
gh
以前までは hub を利用していたが、公式の GitHub CLI に移行することにした
※ 該当のコミットを表示する 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)
Discussion