1

開発からプッシュし、テストと本番からプルするgitリポジトリがあります。

これまでに17回のコミットを行い、すべてのサーバーが同期しているとします。
ここで、本番環境でコミット#15に戻したいのですが、(少数の)ファイルだけではありません。本番サーバー上のすべてのファイルにコミット#15を反映させたいです。

また、このために新しいコミットを作成せず、最新のコミットまたは中央リポジトリから他のコミットにロールフォワードできるようにすることも好みます。

私の最初の推測は、ファイルを宣言せずに実行することです。

git checkout [commit-15-SHA1]

それを行うためのより良い/より安全なものはありますか?gitの方法は何ですか?

4

1 に答える 1

4

元に戻してからコミット#15から分岐し、コミット#15の後のすべてのリビジョンをそのまま維持する場合、適切なアプローチです。

git checkout [Commit-15-SHA]

現在の変更と最新の2つのコミットを失うことなく、コミット履歴を「バックアップ」したいだけの場合は、ソフトリセットを試してください。

git reset --soft [Commit-15-SHA]

ただし、コミット15以降のすべてのリビジョンを含め、変更したすべてのものを削除する場合は、ハードリセットを実行します。

git reset --hard [Commit-15-SHA]

git resetの詳細については、こちらをご覧ください。

于 2012-10-31T00:22:20.780 に答える