今日やったこと

  • git rebase 中にコンフリクトが起きた場合の流れを確認した
  • rebase 中にコンフリクトが起きると、Git の処理が途中で止まることを確認した
  • まずは git status を実行して、どのファイルでコンフリクトが起きているかを確認した
git status
  • コンフリクトしたファイルを開き、競合している内容を確認した
  • ファイル内の競合箇所を修正し、最終的に残したい内容に整理した
  • コンフリクトを解消した後、修正したファイルを git add でステージングした
git add .
  • ステージング後、git rebase --continue を実行して rebase を再開した
git rebase --continue
  • rebase の途中で作業をやめたい場合は、git rebase --abort を使うことを確認した
git rebase --abort
  • git rebase --abort を実行すると、rebase を開始する前の状態に戻せることを確認した

学んだこと

  • git rebase 中にコンフリクトが起きると、Git は自動で処理を進めず、一時停止する
  • rebase が止まった場合は、まず git status を確認すると、次に何をすればよいか分かりやすい
  • git status では、コンフリクトしているファイルや、rebase 中であることを確認できる
  • コンフリクトしたファイルには、どちらの変更を残すか判断が必要な箇所が表示される
  • コンフリクトを解消しただけでは rebase は再開されない
  • コンフリクトを解消した後は、修正したファイルを git add する必要がある
  • git add は、コンフリクトを解消済みとして Git に伝える意味もある
  • git rebase --continue は、コンフリクト解消後に rebase を再開するためのコマンド
  • rebase 対象のコミットが複数ある場合、git rebase --continue 後に別のコミットで再びコンフリクトが起きる場合もある
  • コンフリクトが何度も起きた場合も、基本的には「修正する」「git add する」「git rebase --continue する」という流れを繰り返す
  • git rebase --abort は、rebase を中断して開始前の状態に戻すためのコマンド
  • rebase の途中で状況が分からなくなった場合は、無理に進めず git rebase --abort で戻す選択肢もある
  • rebase はコミット履歴を書き換える操作なので、共有済みのブランチで実行する場合は注意が必要

あいまいなこと

  • rebase 後に push するときの --force-with-lease の使い方
  • git push --forcegit push --force-with-lease の違い
  • git rebase --skip を使ってよい場面
  • rebase 中に複数回コンフリクトが起きた場合の考え方
  • 共有ブランチで rebase してよいケースと避けた方がよいケース

次にやること

  • rebase 後にリモートへ push する場合の注意点を確認する
  • git push --force-with-lease の意味を整理する
  • git push --force ではなく --force-with-lease が推奨される理由を確認する