resetが良いかrestoreが良いか、ファイルひとつだけを戻す場合
git reset ファイル名
git restore –staged ファイル名
コマンド/オプション | ブランチの履歴 | ステージングエリア | 作業ディレクトリ | 変更の破棄 |
git reset –hard <コミットID> | 戻る | 戻る | 戻る | する |
git reset –mixed <コミットID> (デフォルト) | 戻る | 戻る | そのまま | しない |
git reset –soft <コミットID> | 戻る | そのまま | そのまま | しない |
git reset <ファイル名> | 変わらない | 解除される | そのまま | しない |
git restore
は、「ファイルを特定の状態に復元する」という目的が明確なコマンドです。
git restore <ファイル名>
: 作業中の変更を破棄して、以前の状態に戻す(注意が必要)。git restore --staged <ファイル名>
: ステージングを解除するだけで、ファイル内容は変えない(比較的安全)。
git restore ファイル名は、変更内容も破棄してしまう
git reset –hard ファイル名は、変更内容も破棄してしまう
stagedを解除するだけなら git resetで良いと思うけど
git restore –staged ファイル名が推奨のようですね
規模や作業状態によってリスクは変わりますが
- git restore ファイル名 ( 1ファイルの内容が破棄される
- git reset ( リポジトリのstaged全て解除される
どちらが大きなリスクか、何をしたいかによりますかね?
小規模で影響ファイルが少なければ内容の破棄がないのでgit resetが良いかなと個人的には思います
コメント