gitでいくつかの変更を誤ってプッシュしました。そして、それらの変更は別のブランチとマージされました。 マージのため、最初のブランチの変更をリセットできません。gitにプッシュされ、別のブランチとマージされた変更をリセットするには?
誤ってプッシュされた変更をどのようにリセットする必要がありますか?
gitでいくつかの変更を誤ってプッシュしました。そして、それらの変更は別のブランチとマージされました。 マージのため、最初のブランチの変更をリセットできません。gitにプッシュされ、別のブランチとマージされた変更をリセットするには?
誤ってプッシュされた変更をどのようにリセットする必要がありますか?
良い状態に戻って、間違いを修正したコミットを押すことを検討することもできます。これは履歴の間違いを防ぎますが、壊れた変更を引っ張った人との調整が必要なくなり、他のブランチはマージするだけで簡単に修正できます。
共有ブランチをリセットしてプッシュする際の問題は、他のリポジトリやブランチに壊れた変更が残っていることです。
あなたが本当にブランチをリセットする場合:master
枝を想定し
は、我々がbroken
を呼ぶだろうコミットを追加されたの上、good
と呼ぶことにしますコミットから始まりました。 feature
ブランチはmaster
を分岐し、我々はbefore
を呼ぶだろういくつかのコミットを開始し、その後、我々はmerge-broken
を呼ぶだろう、と他のコミットがその上に作られた、私たちは」コミット中(broken
あった)master
と合併しましたそれらをafter-broken
と呼ぶでしょう。ここで
はmaster
とfeature
枝に他の変更を破棄し、これらの枝が固定される可能性があります方法は次のとおりです。
git branch -f master good
git branch -f feature before
git checkout feature
git merge master
git cherry-pick merge-broken..after-broken
これらの変更は、上流のプッシュすることができますが、この上記のようにすることは公共または共有のレポで危険かもしれません:
git push origin +master +feature
他のユーザーが--force
フラグを使用して、それらの枝を引く必要があるかもしれません、と同じように彼らの地元の支店を調整する必要があります。