0

新しいブランチを作成したとき、マスターの最新のコミットは A.

新しいブランチを作成した後、マスターにいくつかの変更が加えられたため、マスターの最新のコミットは B.

ブランチにいくつかのコミットを行いました。フォークでの最新のコミットは C です。

ここで、ブランチを「A」にハード リセットし、「git fetch --all」を使用してすべての変更をフェッチしました。

「git rebaseupstream/master」を実行すると、いくつかの競合が表示されますか? なんでそんなの??

4

1 に答える 1

0

両方のストリームで同じ行を変更しました。あなたが何をしたいのかをgitが知る方法はありません。これは、リベースするかマージするかに関係なく当てはまります。リベースでは、変更を再生していますが、変更が予期されているドキュメントの元のセクションが一致していません。Git が勝手にこれを行うことはありません。ただし、これが意図する場合はマージ戦略を選択でき、「ours」を使用して常に不一致をオーバーライドします。ただし、これはデフォルトの動作ではありません。

空白や中括弧の位置など、変更が重要でないと判断した場合は、Beyond Compare 3 のような構文対応のマージツールを使用すると、競合をすばやく解決できます。

その後の中央の変更でこの作業を引き続きリベースする予定がある場合は、rerere を有効にすると自動更新されます。これにより、同じ競合が同じ方法で自動的に解決されるようになります。

于 2012-12-27T22:24:12.920 に答える