6

今夜、コードが git にチェックインされ (master ブランチにプッシュされると、アプリケーションに自動プッシュされます)、サイトが少しダウンするという問題が発生しました。サイトを元に戻すために EC2 スナップショットを復元しましたが、今度は git をクリーンアップして元に戻す必要があります。

マスター ブランチへの最後に成功したコミットを見つけ、その sha1 ID の最初の 8 文字ほどを取得して、これを実行する必要があるようです。

git reset --hard jfe2ldj2
git push origin master -f

これを行うと、コミット「jfe2ldj2」以降のマスターブランチのすべてがgitから消去され、復元できなくなります。私はそれを正しく理解していますか?

また、これは他のブランチやコミットには影響しませんか? つまり、そのコマンドを実行して master ブランチを 6 週間前に戻すと、他のすべてのブランチは最新のままになります。多数のリリース ブランチとフィーチャー ブランチがあり、それらすべてに 6 週間前から複数のコミットがある場合、それらのブランチとコミットはすべてまだそこにあるということですか?

4

1 に答える 1

7

これを行うと、コミット以降のマスター ブランチのすべてがjfe2ldj2git から消去され、復元できなくなります。

すでに十分に説明されているように、変更がコミットされた場合でも、変更後でも復元できます。reset --hard

また、これは他のブランチやコミットには影響しませんか?

はい、木のことを考えてみてください。1 つの枝を切り落とすと、他の枝はそのまま残ります。

于 2013-04-08T08:53:25.117 に答える