2012-01-25 18 views

答えて

2

警告:ここのすべてのステップは破壊的です。間違ってはいけないし、始める前にレポのコピーを取ってください。

git reset --hard $whatここで、SHAとは何か、またはそのブランチに戻る予定のものです。 (例:最新コミットを破棄したい場合はHEAD^

これを実行したら、git push --force ...をリモートリポジトリに取得します。

これは、リモートのリポジトリから死んだBLOBなどを削除する以外はすべてを解決します。それがあなたにとって重要ならば、人生はより困難です。それを取り除くプロトコルの方法はありませんので、リモートのリポジトリを削除して新しいクリーンなコピーを作成するか、バックエンドに固有の処理を行います。

+0

また、 'git push --force'は、他の誰かがあなたと働いていて、あなたのコミットを引っ張っている彼らはまた、彼らの最後に回復の束を行う必要があります。 – Amber

+0

ありがとう、素晴らしい仕事。レポはちょうど私のものではなく、実際にはプロセスの早い段階でプロジェクトを初期化しているので、失うことはありません。 ThanksQ – fancy

3

Danial Pittmanは、あなたが取った行動を「消去する」プロセスを提供しましたが、別の方法を提案します。可能であれば、あなたが行った変更を修正して、前のコミットを本質的に無効にする方がよいでしょう。はい、人々は依然としてレポ履歴を見て、おそらく「間違い」を見ることができますが、これはより安全なアプローチです。さらに、変更した変更が実際に必要な場合は、このメソッドを実行するときにリポジトリに残ります。希望が助けてくれる!

+2

コミットにパスワードのような機密情報が含まれている場合、これは役に立ちません。それは、彼の希望の私の解釈であり、行われたことを元に戻すことではなく、それが起こったことがないようにすることです。 – johnny

+0

@johnny正確に – fancy

+1

私は、この質問を見る他の人が自分のオプションを知っていることを確認したかったと思います。 – jbranchaud

関連する問題