Gitで管理されているプロジェクトのローカルな変更をすべて以前の状態に戻すには?
あるプロジェクトでgit init
を実行しました。
数回のコミットの後、git status
を実行したところ、すべてが最新で、ローカルでの変更もないことがわかりました。
その後、いくつかの連続した変更を行い、すべてを捨てて元の状態に戻したいと思いました。このコマンドはそれをやってくれるでしょうか?
git reset --hard HEAD
1816
3
作業コピーに加えた変更を元に戻したい場合は、このようにします。
インデックスに加えた変更を戻したい場合は、次のようにします。Warning this will reset all of your unpushed commits to master!:
自分がコミットした変更を元に戻したい場合は、次のようにします。
トラックされていないファイル(新規ファイルや生成されたファイルなど)を削除したい場合は、次のようにします。
または、トラックされていないディレクトリ(例:新規ファイルや自動生成されたディレクトリ)を
注:また、次のように実行することもできます。
として
はトラックされていないファイルを *削除しません。一方、git-clean はトラックされているルートディレクトリから git トラッキングされていないファイルを削除します。警告 - これには注意が必要です!最初に git-clean のドライランを行い、何を削除するのかを確認しておくとよいでしょう。
これは、次のようなエラーメッセージが出たときにも役立ちます。
これはいくつかのことをしているときに発生する可能性があります。一つは、あなたと友人が同じ名前の新しいファイルを追加したが、友人はそれを先にソースコントロールにコミットしており、あなたはトラックされていないコピーを削除することを気にしていないときに、作業コピーを更新することです。
このような場合、ドライランを行うことで、上書きされるファイルのリストを表示することができます。
git-reflog を見てみましょう。 これは、記憶しているすべての状態をリストアップしてくれます (デフォルトは 30 日間)。 たとえば、以下のようになります。