git checkout を使うな
git checkout で現在位置を切り替えたりブランチ作ってブランチ移動したり...
checkout には様々な機能がありますが、Git の 2.23 あたりから checkout の機能を分割して新しいコマンドが増えています。
それが git restore と git switch です。
(そもそもチェックアウトの意味が分かりづらい)
https://scrapbox.io/files/64d5f3f1f17cca001b333db3.png
ブランチを切り替える
git checkout hoge -> git switch hoge
すごくわかりやすい。
ブランチを作って切り替える
git checkout -b hoge -> git switch -c hoge
checkout -b は branch の b なんだろうけど分かりづらい
switch -c は create という意味で作りながら切り替えを行える。git switch --create hoge でも動く。
-c が分かりづらいなら多少手間でも git branch hoge してから git switch hogeするのが分かりやすい。
ステージングエリアに上げていない変更を取り消す
git checkout . -> git restore .
スタージングエリアに上げたものを戻す
git reset -> git restore --staged
git reset も使い方によってはプロジェクトに大きな影響を及ぼすので使わないほうがいい
コミットハッシュから状態復元
git checkout <commit_hash> -> git restore --source <commit_hash>
checkout のときと変わらないけど detached HEAD 状態になることに注意するように