私は深いs ***にいます。作業中のブランチに小さな修正をコーディングしました。なんらかの理由で、そのブランチで作業しているのは私だけであるため、「リモートの相手の背後にある」ため、プッシュしたくありませんでした。私の同僚は、私がしたプッシュ -f をするように私に言いました。しかし、それはすべてのローカル ブランチをリモートにプッシュし、すべてをローカル リポジトリにあるバージョンに置き換えました。master での最後のコミットは現在 22 日前です。私たちは膨大な量の仕事を失いました。すべてのブランチで git push -f をロールバックする方法は?
質問する
133 次
2 に答える
1
なんとか整理できました。
とにかくgit push -fを元に戻す方法はありますか? 私をたくさん助けてくれました
私がしたことは、次のように見えるプッシュ -f 中に表示されるコミット参照を使用することです
e658r75...63ehd63 master -> master (forced update)
e23r433...29e23gz dev -> dev(forced update)
何かをする前に現在のブランチのみをプッシュするように構成のデフォルトを設定しました
git config --global push.default current
次に、上書きしたブランチごとに、「...」の前にpush -f を示す参照を使用して、次のことを行いました。
git checkout master
git push -f origin e658r75:master
git pull origin master
これにより、プッシュ -f の前の時点で、リモートおよびローカルのリポジトリにブランチが設定されます。
ref:branch へのプッシュ後、私のローカル ブランチは HEAD 状態 (まだ古いローカル バージョン) ではなかったことに注意してください。そのため、リモート ブランチをプルしてリセットする必要がありました。
于 2013-06-19T09:00:32.890 に答える