🥺

git checkoutの 「-b」を付けたり外したりしたくない

2022/05/01に公開

ブランチを切り替える際、「-b」の付け外したりが地味に面倒だなーと思っていました。
-b」を外し忘れて、fatal: A branch named 'hoge' already exists. に見舞われたこともしばしば...
そこで今回は、git checkoutの「-b」を省略する方法をまとめます。

達成したいこと

下記条件を1つのコマンドで完結したい。

  1. hogeブランチがない場合 → git checkout -b hoge の働きをする
  2. hogeブランチが既にある場合 → git checkout hoge の働きをする

解決策

.gitconfigにaliasを設定する[1]

[alias]
	ch = "!f() { git checkout $1 2>/dev/null || git checkout -b $1; }; f"

まとめ

-b」の付け外し忘れ防止ができるので、個人的には気に入っています!

下記を参考にしました🙏
https://stackoverflow.com/questions/26961371/switch-on-another-branch-create-if-not-exists-without-checking-if-already-exi

脚注
  1. もちろん、aliasが「ch」以外の場合やgit switchを使用している場合でも代替できます。 ↩︎

GitHubで編集を提案

Discussion