これまで、マスターブランチに何か間違ったことをコミットしてプッシュした場合、それを解決する方法は、gitログが次のようになっていると仮定します。
commit bad_hash
commit another_bad_hash
commit yet_another_bad_hash
commit good_hash
私が過去の状況を「解決」した方法は次のとおりでした:
git reset --hard good_hash
git push -f origin master
はい、それは機能します...しかし、コミット履歴を効果的に削除するため、あまりエレガントには見えませんでした。
それで、私のエゴを破壊した状況の後、私はより良い方法をチェックし、git revertのものを出しました、本質的に私は今使っています
git revert bad_hash another_bad_hash yet_another_bad_hash
git push origin master
git revertは3つのコミット(元に戻されたハッシュごとに1つ)を作成します。その後、リモートを更新するためにプッシュが必要です。
さて、質問は、この戦略は正しいですか?リポジトリの履歴はトランク化されていないため、リセットよりもはるかに良く見えます。最終的に誰かが問題が発生した理由を確認したい場合は、いつでも実行できます。
git diff bad_hash
この推論は正しいですか、それとも私はまだ基本的な概念を欠いていますか?
ありがとう