Git ローカル リポジトリを、フォーク先のリポジトリに置き換えたいです。

Git ローカル リポジトリを、フォーク先のリポジトリに置き換えたいです。

これが問題なので、マージしたくありません。

私のリポジトリは次のようになっているとします: (文字はコミットです)

A B C D E F G

'A' がヘッドです。そして、2 つのコミット (削除したい 'E' と 'C') があります。この 2 つのコミットを削除すると、ヘッドの上に 2 つのコミットが追加され、2 つのコミットを元に戻したというメッセージが表示されます。これは望ましくありません。リポジトリは、フォーク先のリモート リポジトリと同じように見えるようにしたいのです。

問題は、コミットをプッシュするたびにコミット「E」と「C」もプッシュされるため、作業がまったく進まないことです。

助けが必要です。数え切れないほどの調査をしましたが、見つかった答えはすべて抽象的な解決策や一連のコマンドで、説明がないため、それが必要な答えかどうかわかりません。

答え1

やってみました:

git rebase -i A

コミットCとEを破棄する

ただし、以前にリモートにプッシュしたことがある場合は、問題が発生する可能性があります。すでにリモートにプッシュしている場合は、履歴を実際に書き換えることはできません。つまり、書き換えることはできますが、プッシュ後にプルしたユーザーは、突然、履歴がリモートの履歴と同じでなくなるため、問題が発生します。

関連情報