【ITニュース解説】Working with multiple git remotes
2026年10月19日に「Dev.to」が公開したITニュース「Working with multiple git remotes」について初心者にもわかりやすく解説しています。
ITニュース概要
Gitリモートはコードの保存場所で、通常はGitHubなどが使われる。一つのリポジトリに複数のリモートを設定でき、`git remote add [名前] [URL]`で追加する。プッシュ時は`git push [名前] [ブランチ]`と指定すれば、選んだリモートにコードを共有できる。
ITニュース解説
システムエンジニアを目指す皆さんにとって、日々の開発作業でコードを管理し、チームで協力して作業を進める上で、「Git」というバージョン管理システムは不可欠なツールとなる。Gitを使うことで、コードの変更履歴を詳細に記録し、いつでも過去の状態に戻したり、複数の開発者が同時に同じプロジェクトのコードを安全に修正したりできる。
そして、そのGitで管理するコードの保存場所として、「GitHub」のようなクラウドサービスが広く利用されている。これらのプラットフォームは、単にコードを保存するだけでなく、変更履歴の可視化、共同作業のための機能、コードレビューの仕組みなど、開発を加速させる多くの強化された機能を提供している。これらのサービス上で、プロジェクトのコードが保管されている場所を「リモート」と呼ぶ。通常、リモートは github.com/ユーザー名/プロジェクト名 のようなURLで表現される。これは、皆さんが作成したローカルのリポジトリ(PC内のプロジェクトフォルダ)と、クラウド上のリポジトリとを繋ぐ架け橋のようなものだ。
通常、一つのローカルリポジトリは一つのリモート、特に「origin」という名前のデフォルトリモートに接続されていることが多い。しかし、Gitの強力な機能の一つとして、一つのローカルリポジトリが複数のリモートを持つことが可能であるという点は、あまり知られていないかもしれない。これは、特定の開発シナリオにおいて非常に役立つ機能だ。
例えば、個人で開発を進めているプロジェクトをGitHubに公開しつつ、同時にGitLabのような別のサービスにバックアップとしてコードを置いておきたい場合や、会社のリポジトリと個人用のリポジトリとで同じコードベースを扱いたい場合、あるいは、テスト環境と本番環境で異なるデプロイ先のリポジトリを使い分けたい場合など、複数のリモートを活用することで、これらのニーズに対応できる。
新しいリモートを追加する手順は比較的簡単だ。まず、コードをプッシュしたい新しいサービス上で、空のリポジトリを作成する必要がある。この際、READMEファイルなどの初期ファイルを自動生成するオプションは選択せず、完全に空のリポジトリとして作成するのが一般的だ。そのURLを控えておく。
次に、自身のローカルリポジトリから、その新しいリモートに接続するためのコマンドを実行する。そのコマンドは git remote add <リモート名> <リポジトリURL> となる。ここで重要なのは、 <リモート名> の部分だ。これは、新しく追加するリモートをローカルリポジトリ内で識別するための名前で、自分で自由に決めることができる。デフォルトのリモートが「origin」であるように、「personal」や「gitlab」、「staging」など、用途に応じて分かりやすい名前をつけるのが一般的だ。例えば、個人用のGitHubアカウントにコードをプッシュするためのリモートを追加したい場合は、git remote add personal github.com/あなたのユーザー名/あなたのプロジェクト のように実行する。これにより、ローカルリポジトリは「origin」と「personal」という二つのリモートを持つことになる。
複数のリモートを設定した後は、コードをプッシュする際に、どのリモートにプッシュするかを選択できるようになる。普段から特定の新しいリモートをデフォルトのプッシュ先として設定したい場合は、git config push.default <リモート名> というコマンドを使用する。例えば、git config push.default personal と設定すれば、今後 git push とだけ実行した場合、コードは「personal」という名前のリモートにプッシュされるようになる。これは、作業の効率化に繋がる設定だ。
しかし、毎回特定のデフォルトリモートにプッシュするわけではなく、状況に応じてプッシュ先を使い分けたい場合は、プッシュコマンドを実行する際にリモート名とブランチ名を明示的に指定できる。そのコマンドは git push <リモート名> <ブランチ名> だ。例えば、「personal」というリモートの「main」ブランチにコードをプッシュしたい場合は、git push personal main と入力する。同様に、「origin」リモートの「main」ブランチにプッシュしたい場合は、git push origin main となる。これにより、ローカルリポジトリにある同じコードを、目的に応じて異なる複数の場所へ送り出すことが可能になる。
このように、Gitの複数のリモートを扱う機能は、開発者が自身のコードを柔軟に管理し、多様な開発環境や運用状況に対応するための強力な手段を提供する。この機能を理解し、適切に使いこなすことは、システムエンジニアとしてのスキルを高め、より複雑なプロジェクト管理にも自信を持って取り組むための第一歩となるだろう。