やりたいこと
git checkout -b feature/spam
とするとき、毎回 feature/
をタイピングするのが面倒なので、よしなにうまくやってくれるaliasを作成する。
# feature/spamをつくりたい
$ git checkout -b feature/spam # 毎回feature/を打つのが面倒。。
$ git alias_name spam # 引数にfeature/以下を受け取るaliasを作成したい
結果
2パターン実装してみた
引数にfeature/以下を受け取るパターン
~/.gitconfig
# ~中略~
[alias]
obf = "!f() { \
git checkout -b feature/$1;\
}; f"
参考: One weird trick for powerful Git aliases | ATLASSIAN BLOG
私の場合、 checkout
のaliasを o
としているので checkout -b feature
で obf
としています。
!f()
の形式使えば何でもできそう
read -p
で標準入力を待ち受けるパターン
~/.gitconfig
# ~中略~
[alias]
obf = "!read -p 'feature/' feat; git checkout -b feature/$feat"
f()
同様に ""
で囲んで ;
で行を連続すると何でもできそう。
本当は read -p
の値をpipeで渡したかったけど出来なかった。。
# イメージ
obf = !read -p "feature/" | xargs -I{} git checkout -b feature/{}
shellに詳しい方、コメントで教えてください。