Git のワーキングブランチを<name>
という名前のブランチに切り変えるとき
ふつう git checkout <name>
するかと思いますが、
もしワーキングディレクトリの <name>
と同じ名前の unstaged なファイルがある状況では
git checkout <name>
は abort されてしまいます。
なぜかというとブランチにチェックアウトしたいのかファイルの変更を破棄したいのか分からないからです。
この状況では次のように書くことで望む操作を行うことができます。
ブランチ <name>
にチェックアウトしたい
$ git checkout <name> --
ファイル <name>
の unstage な変更を破棄したい
$ git checkout -- <name>
参考
2019/11/21 追記
git switch
と git restore
が使えるようになったのでそれを使いましょう。