次の画像では、最初に実際の状況を示し、次に私が望む解決策を示します。
そこで、BからAへのマージを元に戻したいと思います。
問題は、すべてがすでにプッシュされており、ブランチCで開発が進んでいることです。また、AをBとマージした後、新しいコミットを実行しました。
このgitの状況を2番目の画像に変更することは可能ですか、それとも「リバースコミット」が間違いを修正する唯一の方法ですか?
しかし、私が得た結果のスキームは明確に見えません、それが私が別の答えを探している理由です
ブランチCは次のようになります。
...--a---------M--f--g--h--i--j
\ / ^ ^
b--c--d [A] [C]
^
[B]
まず、ブランチをリベースする必要がありますC
:
git rebase --onto <sha-of-commit-a> B C
この操作の後、ブランチCは次のようになります。
a--f'--g'--h'--i'--j'
^
[C]
今がブランチを更新する時A
です:
git checkout A
git reset --hard <sha-of-commit-g'>
それで全部です。リポジトリは、このマージが発生しなかったように見えるはずです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加