経緯
レビューの時など、
どうせ一番最新のブランチにチェックアウトするのに、わざわざブランチ名を入れてチェックアウトするのがすごく煩わしい。どうにかブランチ名を入力せずにブランチを切れる方法を探してた。
コマンド
git switch $(git for-each-ref --sort=-committerdate --format="%(refname:short)" refs/remotes/ | head -n 1 | sed 's#origin/##')
git switch ブランチの切り替え(checkoutでも良い)
for-each-ref
: ブランチの取得
--sort=-comitterdate
: 降順に並び替え
--format="%(refname:short)"
: ブランチ名だけを表示
refs/remotes/
: 取得するブランチをリモートに限定
head -n 1
: ブランチを一つだけ表示
sed 's#origin/##'
: 余計なorigin/
を削除
あとは~/.gitconfigにエイリアスを設定して終了!
sed〜は無理矢理感あって微妙かも...
追記
git switch $(git for-each-ref --count=1 --sort=-committerdate --format="%(refname:short)" refs/remotes/ | sed 's#origin/##')
head -n 1
よりも--count=1
の方がスマートですね