まえがき
私のような組織化されていない開発者にとっては、すべてを蓄積することがよくあります。そして、何かが正しくないことが判明しますが、gitはすべてを記憶し、この横暴な無秩序はすべて歴史に残っています。
これはいつでも修正できるように思えましたが、この質問に対する答えを探し始めなかった回数-gitでカミットを削除する方法-何度も成功しませんでした。
そしてすべてが私の検索がリベースにつながったので、リセットを探す必要があったからです。
私の好みでは、質問は十分にカバーされておらず、私のメモはこのギャップを埋めるように設計されています。
アルゴリズム
- git status //現在のバージョンがあることを確認します
- git log //ロールバックするカミットを探します
- sudo git reset --hard 7bcdf46b14b2dacc286b0ad469d5f9022d797f68 //変更を忘れる必要があるカミットを指定しますが、ローカルブランチからは指定されたカミットがすべて忘れられます-削除されます
- git push --force origin feature / draft //ローカルブランチを元の(サーバーブランチ)に入力します-すべての「余分な」カミットは元のブランチから削除されます
- 勝利!
もっと正しい方法があれば、コメントで声をかけてください。
PS
実際、リポジトリからのカミットは削除されず、これらのカミットと変更ツリーの接続は削除されるため、これらのカミットはブランチから消えますが、gitはすべてを記憶しています。
PS2
これ以上の正しい方法はありませんでした(リベースのバリエーションはバリエーションにすぎません)。
しかし、人生のすべてが常に同じように起こり、常に正しい方法で行動する必要があると信じている同志たちの間では、屋根はリポジトリのそのような不安定な扱いによって引き裂かれました。
仲間たち!
各プロジェクト、独自のツール、およびメソッドに対して、gitリセットが適切な方法である場合があります。特に、プロジェクトの開発者が1人で、機能ブランチで過去2時間の作業をカミットでロールバックしたい場合はそうです。