2016-04-20 7 views

答えて

0

良い状態に戻って、間違いを修正したコミットを押すことを検討することもできます。これは履歴の間違いを防ぎますが、壊れた変更を引っ張った人との調整が必要なくなり、他のブランチはマージするだけで簡単に修正できます。

共有ブランチをリセットしてプッシュする際の問題は、他のリポジトリやブランチに壊れた変更が残っていることです。

あなたが本当にブランチをリセットする場合:master枝を想定し

は、我々がbrokenを呼ぶだろうコミットを追加さ​​れたの上、goodと呼ぶことにしますコミットから始まりました。 featureブランチはmasterを分岐し、我々はbeforeを呼ぶだろういくつかのコミットを開始し、その後、我々はmerge-brokenを呼ぶだろう、と他のコミットがその上に作られた、私たちは」コミット中(brokenあった)masterと合併しましたそれらをafter-brokenと呼ぶでしょう。ここで

masterfeature枝に他の変更を破棄し、これらの枝が固定される可能性があります方法は次のとおりです。

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フラグを使用して、それらの枝を引く必要があるかもしれません、と同じように彼らの地元の支店を調整する必要があります。

関連する問題