Gitを利用したチーム開発やコード管理において、リモートリポジトリの扱いは必須のスキルです。GitHubなどのプラットフォームを活用し、ローカル環境とサーバー上のリポジトリを同期・管理するための主要なコマンドとその仕組みについて解説します。
リモートリポジトリの登録
ローカルリポジトリを既存のリモートリポジトリ(GitHub等)に関連付けるには、git remote addコマンドを使用します。
# 書式: git remote add [識別名] [URL]
git remote add upstream https://github.com/username/project-repo.git
慣習的にリモート名はoriginが使われることが多いですが、任意の名称(例: upstream)を付けることも可能です。登録した識別名は、以降のプッシュやプル操作でサーバーを指定するために利用されます。
登録済みリモート情報の確認
現在設定されているリモートリポジトリの一覧や詳細情報を確認する方法です。
# 一覧とURLの表示
git remote -v
# 実行結果の例
# upstream https://github.com/username/project-repo.git (fetch)
# upstream https://github.com/username/project-repo.git (push)
また、特定の名前のリモートに関する詳細な同期状態やブランチ構成を確認するには、showサブコマンドを使用します。
git remote show upstream
データの送信(Push)
ローカルでの変更をリモートリポジトリに反映させるにはgit pushを実行します。
# 構文: git push [リモート名] [ブランチ名]
git push -u upstream main
-u(または --set-upstream)オプションを付与すると、現在のローカルブランチが指定したリモートブランチを追跡するように設定されます。これにより、次回以降は引数を省略してgit pushだけで実行可能になります。
データの取得と統合(Fetch & Merge / Pull)
リモートの変更を取り込むには、fetchとpullの2つのアプローチがあります。
1. 安全な統合プロセス(Fetch & Merge)
fetchはリモートから最新データをダウンロードしますが、ローカルの作業内容に自動で統合(マージ)は行いません。内容を確認してから結合する場合に適しています。
# リモートから最新情報を取得
git fetch upstream main
# ローカルとリモートの差分を比較
git log -p main upstream/main
# 差分を確認後、現在のブランチに統合
git merge upstream/main
2. 一括統合(Pull)
pullはfetchとmergeを一度に行うコマンドです。手軽ですが、競合(コンフリクト)が発生した場合に即座に解決が必要になるため、作業中のコードがある場合は注意が必要です。
git pull upstream main
リモートリポジトリの整理
プロジェクトの構成変更に伴い、登録したリモート名を変更したり、不要な設定を削除したりする場合の操作です。
識別名の変更
# 例: upstream という名前を production に変更
git remote rename upstream production
接続の解除
# 不要になったリモート設定を削除
git remote remove production
これらのコマンドはローカルの「接続設定」を変更するものであり、リモートサーバー上のデータそのものを削除するわけではありません。