git checkout の細かい挙動について

普段意識してないけど、git checkout はファイル名指定無しだとheadを移動するけど、ファイル名指定ありだとheadを移動せずにファイル取得のみをするようだ。

# 特定コミットIDからファイルを取ってきて今の作業ツリー・インデックスに上書き+headをそのコミットIDに切り替え
git checkout コミットID

# 特定コミットIDからファイルを取ってきて今の作業ツリー・インデックスに上書き(headは切り替えない)
git checkout コミットID .