Open2

【Git・GitHub Tips📝】PR Reviewの際によく実施する操作などTips📝

まさぴょん🐱まさぴょん🐱

PR Reviewの際によく実施する操作などTips📝

# Remoteから最新のブランチ情報を取ってくる。
git fetch origin

# Remote の PRブランチにチェックアウト
git checkout origin/<ブランチ名>

# PRブランチにチェックアウト
git checkout <ブランチ名>

Remote RepositoryのPRにUpdateがあった場合

# 最新のUpdateをlocalにMergeする。
git pull origin <ブランチ名>

# コンフリクトや、rebaseなどの手間がある場合は、次のような手順をとったほうが楽である。
# localブランチ削除 -> 最新取得 -> PRブランチに切り替え。
git branch -D <ブランチ名>
git fetch origin
git checkout <ブランチ名>
まさぴょん🐱まさぴょん🐱

解説📝

1. git fetch origin

意味:

このコマンドは、リモートリポジトリ(ここではoriginという名前で登録されているリポジトリ)から最新のブランチ情報やコミット情報を取得します。ただし、ローカルリポジトリの作業ツリー(実際に編集しているファイル)には影響を与えず、単にリモートの状態をローカルのGitデータベースに反映するだけです。

具体的に何をするか:

  • リモートリポジトリのブランチやタグの最新情報をダウンロードする。
  • ローカルのブランチ(例: mainfeature-branch)はそのまま維持される。
  • 例えば、リモートで新しいブランチが作成された場合や、既存のブランチに新しいコミットが追加された場合、それらの情報がローカルに認識されるようになります。

ポイント:

  • git pullとは異なり、取得したデータをローカルのブランチにマージ(統合)することはありません。情報確認用と考えてください。

2. git checkout origin/<ブランチ名>

意味:

このコマンドは、リモートリポジトリ(origin)にある特定のブランチ(<ブランチ名>)の内容を直接参照してチェックアウトします。ただし、これは少し特殊な動作をします。リモートのブランチを直接ローカルで編集可能な状態にするのではなく、「リモートのブランチの状態をそのまま見る」ような形になります。

具体的に何をするか:

  • origin/<ブランチ名>(例: origin/feature-123)は、リモート追跡ブランチ(remote-tracking branch)と呼ばれ、git fetchで取得したリモートのブランチの状態を表します。
  • このコマンドを実行すると、そのブランチのコミット時点の状態が作業ツリーに反映されます。
  • ただし、ローカルに同名のブランチを作成するわけではなく、いわゆる「デタッチドHEAD(detached HEAD)」状態になります。これは、特定のコミットを直接見ている状態で、通常のブランチ上での作業とは異なります。

注意点:

  • この状態で変更を加えてコミットしても、ローカルブランチに反映されないため、作業を進める場合は以下のようにローカルブランチを作成する必要があります:
    git checkout -b <ローカルブランチ名>
    
  • 主に、リモートのブランチの内容を確認したいときや、一時的にその状態を試したいときに使います。

実際の流れの例

  1. git fetch origin
    → リモートの最新情報を取得して、ローカルに「origin/<ブランチ名>」として認識させる。
  2. git checkout origin/<ブランチ名>
    → そのリモートブランチの内容をチェックアウトして、コードやファイルを確認する。