コードレビューのときにfeatureブランチをローカルに落としたいときや、ローカルでブランチのマージ作業をしたいときなど、リモートリポジトリとローカルのブランチの状態を強制的に一致させたいときがあります。
そのようなときに行う手順をまとめました。
手順
### リモートリポジトリの最新情報を取得
$ git fetch
### 対象ブランチにチェックアウト
$ git checkout {ブランチ名}
### 強制的に最新のコミットの状態にする
$ git reset --hard origin/{ブランチ名}
補足: 対象ブランチにチェックアウトする方法について
リモートリポジトリのブランチにローカルでチェックアウトする方法でよく紹介されている方法は以下です。
$ git checkout -b {ブランチ名} origin/{ブランチ名}
しかし、以下の方法でもチェックアウト可能です。1
$ git checkout {ブランチ名}
もし、ローカルにチェックアウトする対象のブランチと同じブランチ名がある場合、git checkout -b
ではエラーになってしまいます。
例えば、master
というブランチ名がローカルにすでにある場合、git checkout -b master origin/master
とするとエラーになります。
git checkout
の方法ですと、すでに同じ名前のブランチ名がある場合は単純にチェックアウトするだけになりますし、同じ名前のブランチ名がなければリモートリポジトリのブランチをチェックアウトしてくることが可能になります。
ですので、git checkout
の方法を利用するほうがオススメです。