変更を破棄したり、Gitを使用して以前のコミットに戻したりするためのさまざまなアプローチを見てきました。私は通常、どちらが自分の状況に適しているかを理解できますが、その過程で、さまざまなアプローチにかなり混乱しました。最近、いくつかのファイルの名前変更を元に戻そうとしていましたが、古いバージョンのファイルをどれだけ頑張っても、古いファイルを元に戻すgit checkout
ことができませんでした。
どのアプローチを使用するのか、そしてその理由についての説明を探しています。これがいくつかのアプローチについての私の理解です。答えは非常に文脈的なものかもしれないと思いますが、どの文脈がどのアプローチを必要とするかを整理してみたいと思います。
1)git checkout -- .
- 最新バージョンのファイルをチェックアウトするために使用されます。古いファイルは上書きされますが、削除、名前変更、または新しいファイルには影響しません。
2)git stash save --keep-index
続いてgit stash drop
- コミットされていないファイルを隠してから、完全に削除します。保持したい変更をコミットし、破棄したい変更をコミットしていない/ステージングしていない場合は、適切なアプローチです。
3)git reset --hard
- ファイルの名前変更、削除、追加など、最後のコミット以降のすべてを消去します。
これが私の現在の私の選択肢の理解です。私の説明に何か変更はありますか?git revert
上記のコマンドの代わりにいつ使用するかもわかりません。
ソース投稿: