83

私の状況を説明しましょう:

ブロンド氏とオレンジ氏は、コミット M1 でマスター ブランチから分岐するブランチ A に取り組んでいます。ブランチ A には、A1 と A2 の 2 つのコミットがあります。

M1  
   \
    \
     A1 - A2

一方、Mr Orange は master ブランチ M2 と M3 でさらに 2 つのコミットをコミットしてプッシュしました。

M1  - M2 - M3
   \
    \
     A1 - A2

Mr Blond はリモートからプルし、しばらくして master ブランチにリベースすることにしました。

M1  - M2 - M3
   \         \
    \         \
     A1 - A2   A1` - A2`

現在、A1` と A2` はリベースされたコミットであり、Mr blond のローカルに存在し、A1 と A2 はリモートに存在します。ブロンド氏はコミットをプッシュし、-fを使用して変更を強制し、履歴を「書き換え」ます。リモートリポジトリは次のようになります。

M1  - M2 - M3
             \
              \
               A1` - A2`

でもミスター・オレンジはAブランチでも働いていました。彼のローカル リポジトリはまだ次のようになっています。

M1  - M2 - M3
   \
    \
     A1 - A2

Mr. Orange がリモート リポジトリの A ブランチと同期するには、何をする必要がありますか?

通常の引きは効きません。pull -fはリモートからの変更をローカルに強制しますか? A のローカル バージョンを削除し、リモート リポジトリから再度取得することで問題が解決することはわかっていますが、それはそれを達成するための良い方法ではないようです。

4

4 に答える 4