🐣
ファイルを指定したリビジョンにする
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