0

リモート/パブリックブランチ「OLD」をクリーンアップする必要があります。これには、悪い/巨大なコミットが含まれているためです。

OLD - 簡易グラフ

(...) -> c234 -> c235(huge to fix) -> c236 -> c237(huge to fix) -> c238 -> c239 -> (...) -> HEAD

そうするために私はした:

1) 「NEW」ブランチを作成しました。

2) 最初の大きなコミットの前に戻る (c234)

3) 最後の大きなコミットの前にすべてのコミットをチェリーピックします。(c236)

4) 次に、最後の巨大なコミット (c237) の後で、変更されたすべてのファイルを「OLD」ブランチからコピーしました。

5) そして最終的に、変更を反映する多くの小さなコミットを作成しました (c235、c237)

NEW now - 簡略化されたグラフ

(...) -> c234 -> c236 -> (many commits reflecting state after c237) -> HEAD 

今、私の意見では、(c237) 以降に行われたすべての変更を「OLD」で「NEW」の上にリベース/チェリーピックする必要があります。

NEW 予想 - 単純化されたグラフ

(...) -> c234 -> c236 -> (many commits reflecting state after c237) -> c238 -> c239 -> (...) -> HEAD

この git-rebase -i の前に試してみましたが、これは公開レポであるため、多くの (OLD の HEAD へのコミットがほぼ 400 件あります) マージが含まれており、時々競合を解決する必要がありました。魔女には何日もかかる可能性があります。

それに対処する方法についてのアイデア。

4

1 に答える 1

0

commit 時にブランチで(many commits reflecting state after c237)持っていたのと同じ状態を最終的に再現しないようです。そうした場合、マージの競合は発生しません。OLDc237

git diff c237これは、リベースを試みる前に、見逃したものを確認する必要があることを意味します。

于 2014-09-27T22:18:16.440 に答える