Git リポジトリをクローンし、開発プロセスの早い段階で特定のコミットにロールバックしようとしました。その時点以降にリポジトリに追加された内容は私にとって重要ではないため、ローカル ソース コードからそれ以降の変更をすべて省略したいと考えています。
ただし、GUI ツールでロールバックしようとすると、ローカル ファイル システムが更新されず、常にプロジェクトの最新のソース コードが使用されてしまいます。
プロジェクトの履歴内の特定のコミット時点のリポジトリのソースのみを取得し、それ以降の更新をすべて省略する正しい方法は何ですか?
ベストアンサー1
git reset --hard <tag/branch/commit id>
ノート:
git reset
オプションを指定しないと--hard
コミット履歴はリセットされますが、ファイルはリセットされません。--hard
オプションを指定すると、作業ツリー内のファイルもリセットされます。(クレジットされたユーザー)その状態をコミットして、リモートリポジトリもロールバックされたコミットを指すようにしたい場合は、次のようにします
git push <reponame> -f
:(クレジットされたユーザー)