🐣

ファイルを指定したリビジョンにする

2021/10/24に公開

Gitリポジトリ内のファイルを、指定したリビジョンの状態にする方法のまとめ

得られる結果

git diff --cached (HEAD→index) git diff (index→worktree) git diff HEAD (HEAD→worktree)
index を更新した時 0
index と worktree を更新した時 0
worktree を更新した時 0
  • +Δ: HEAD から指定リビジョンへの差分
  • -Δ: 指定リビジョンから HEAD への差分
  • 0: 差分なし

index を更新する

これをしたい場面はあまり思いつかないが、

$ git restore --staged --source=REVISION path/to/file

次のようにしても同じ

$ git reset REVISION path/to/file

index と worktree を更新する

worktree 上で変更して、git add した状態にするには

$ git restore --staged --worktree --source=REVISION path/to/file

次のようにしても同じ

$ git checkout REVISION path/to/file

worktree を更新する

worktree 上で変更して、git add してない状態にするには

$ git restore --source=REVISION path/to/file

これが一番使いそうなのだが、git restore 登場以前は以下の二手が必要だった

$ git checkout REVISION path/to/file
$ git reset path/to/file

Discussion