git checkout

Git チュートリアル: 変更を元に戻す | アトラシアン

git checkout <commit> <file>

fileが、指定した commit に含まれそのファイルの完全なコピーとなり、さらにそれをステージングエリアに追加します。

git checkout <commit>

作業ディレクトリ内のすべてのファイルを指定したコミットと同一の状態に更新するコマンド

Git - LumberMill's Notes

git checout -- file

ファイル名とブランチ名がたまたま重複してしまった場合に誤動作してしまう危険性があります。その曖昧さを無くすための指定が「--」ということらしいです。