1

私はgit事故に遭いました。

"feature1"
やりたかったローカルブランチに取り組んでいましたが、"git push not-origin feature1:master"
誤って"git push origin feature1:master".

それは多くの混乱を引き起こし、コミットをインターリーブさせました(特定のコミットを元に戻すことはできません)

マスターの更新されたバージョンをローカルに持っていなかったため、強制的にプッシュすることはできないため、これを元に戻す方法はありますか?

PS: Enterprise にアップグレードせずに master へのプッシュをブロックする方法は見つかりませんでした。

4

1 に答える 1

3

マスターの更新バージョンをローカルに持っていなかったため、強制的にプッシュすることはできないため、これを元に戻す方法はありますか?

そこは間違っていると思います。強制プッシュ (--forcedフラグを指定したプッシュ)を行わないgit push限り、リモート ref が現在の ref からのパス上にある場合、つまり、現在のブランチがリモート マスター ブランチから分岐していない場合にのみ成功します。

これは、あなたのブランチfeature1に commit があることを意味します。これはが指してCいたものです。master

したがって、必要なことは、把握Cし、 を使用して新しいブランチを作成し、 を使用してgit branch master_recovered Cこのブランチを master に強制的にプッシュすることだけgit push -f origin master_recovered:masterです。

于 2015-01-13T13:49:32.977 に答える