でgit履歴から特定のコミットを削除する方法を知っていますgit rebase --interactive
。
私の質問は、次のような歴史を持つより複雑なケースに関するものです。
A--X--B--C--D
\
E--F
コミットを削除したいところX
。問題は、この場合、履歴に親(B
この場合)を持つブランチが2つ以上あるX
ため、1つでgit rebase -i
はうまくいかないことです(少なくとも方法はわかりません)。
削除する簡単な方法はありX
ますか、それとも、おそらくシェルスクリプトを使用して、すべてのブランチを独自にリベースすることに依存する必要がありますか?
残念ながら、Gitはこの状況でそれを容易にしません。まず、コミットXを削除して、Dブランチでインタラクティブなリベースを実行します。
次の履歴があります。
A--X--B
\ \
\ E--F
\
B'-C'-D'
次に、FブランチをB 'にリベースする必要があります。
git rebase --onto B' B F
(コミット名をIDに置き換えます)
それは
A--B'-C'-D'
\
E'--F'
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加