tanaka's Programming Memo

プログラミングについてのメモ。

Branchが混乱してMergeに失敗した時の対応

CONFLICTS_DURING_MERGE_BASE_CALCULATION

などと表示されて、Mergeがうまくいかない場合、過去にお互いにMergeしていて、混乱している場合がある。そういう場合は、Rebaseで解決する。

Rebaseの使い方

masterとtopicの2つのブランチがあり、masterにtopicを統合したい場合は以下のようにする。

  • topicにcheckoutする
  • Rebaseを呼び出して、masterを指定する
  • 自動的にmasterにcheckoutが実行されて、topicが後ろにMergeされていく
  • 途中でConflictが発生したら、Merge Toolを選んで、競合箇所を解消する
  • 解消が終わったファイルを右クリックして、Add Indexする
  • Conflictを全て解決したら、プロジェクトを右クリック > Team > Rebase > Continue Rebase を選択して、Rebaseを継続
  • Conflictが検出されず、先に進めなくなったら、プロジェクトを右クリック > Team > Rebase > Skip〜 を選択
  • 全てのMergeが完了したら、Rebaseが終わる

Rebaseが終わったらmasterを更新する

  • masterにcheckoutする
  • mergeを選択して、topicを選ぶ
  • Push to upstreamでGithubにプッシュ

topicの後始末

  • masterと統合しているので、ローカルからは削除してもよいだろう
  • pushする場合は、masterのpushが完了した後に、pullをして、競合を解決。全て終わったらpushする