Git Remote: リモートリポジトリを管理する
git remote でリモートリポジトリを追加・削除・管理する方法を解説。upstream リポジトリ、複数リモート、フォークワークフローに対応します。
git remote add upstream https://github.com/original/repo.git詳細な説明
git remote は何をするのか?
git remote はローカルリポジトリが通信するリモートリポジトリのセットを管理します。リモートとは、別の場所(GitHub、GitLab など)にホストされたリポジトリのコピーを指す名前付き URL です。
よく使うコマンド
# リモートを一覧表示
git remote -v
# リモートを追加
git remote add upstream https://github.com/original/repo.git
# リモートを削除
git remote remove upstream
# リモートの名前を変更
git remote rename origin github
# リモートの詳細情報を表示
git remote show origin
フォークワークフロー
リポジトリをフォークすると、通常2つのリモートがあります:
origin— 自分のフォークupstream— 元のリポジトリ
# フォークを元のリポジトリと同期する
git fetch upstream
git checkout main
git merge upstream/main
git push origin main
リモート URL の変更
# HTTPS から SSH に切り替える
git remote set-url origin git@github.com:user/repo.git
# 変更を確認
git remote -v
複数のリモート
冗長性やデプロイのために複数のリモートに push できます:
git remote add deploy git@deploy-server:/var/repos/app.git
git push deploy main
古くなった参照の整理
リモートブランチが削除されても、ローカルの追跡参照は残ります。これをクリーンアップするには:
git remote prune origin
# または fetch 時に自動的に:
git fetch --prune
リモートの理解はコラボレーションの基本です。フォークを通じてオープンソースに貢献する場合でも、複数のデプロイ先を管理する場合でも、git remote はローカルの作業を外の世界とつなぐコマンドです。
ユースケース
オープンソースのコントリビューターがリポジトリをフォークし、元のリポジトリを upstream リモートとして追加して、フォークを定期的に最新の変更と同期する場面で使用します。