は、私はこのようなGitの歴史を持っていると仮定します。gitの履歴から「無意味な」コミットを削除する方法はありますか?
A-B-C-D-E-F-G
Bが60Kのファイルを追加しました。
Fこれらのファイルは削除されました。
git log
のように、gitの履歴をトラバースする操作では、F(またはB)を超えなければならないと、愚かな時間がかかります。
BとFを履歴から効果的に削除する方法はありますか?
その他の点:これを行う簡単な方法はありますか?また、レポを使用している他の開発者も最新のものであることを確認してください。 (私の考えでは、すべてのソリューションが最終的にA-C'-D'-E'-G'
の結果になると思われます...
私の勇気は私が得るつもりが作成することですAからのブランチ、CからEへのチェリー・ピック、次にGからの新しいブランチを作成し、それを最初のブランチにマージします。か何か。あなたが言った(または意味)としてgit rebase -i A
を行い、Bのための行を削除し、F.
しかし
「上流リベースからのリカバリ」を参照してください。問題のブランチは「マスター」です。私が読んでいるところでは、対話的なリベースをして悪意のあるコミットを取り除くと、 'master 'を上書きして、現在持っているトピックブランチをすべて削除するようにGithubに強制しなければならないでしょうか? – henrebotha
正確に。これは、公開された履歴を書き換える "コスト"です。これはまた、通常、ローカルブランチのためにプッシュされた変更とリベースでマージを使用する理由です。 – Vampire