趣旨
この記事では、プロジェクトごとに開発用と本番用のリポジトリが分かれている、Google Cloud Source Repositoriesのような状況における具体的なユースケースを取り上げ、それに伴う設定手順を紹介する
具体的なユースケース
Google Cloud Source Repositoriesなどで開発環境と本番環境が別々のリポジトリに分かれている場合がある。このような状況では、ブランチ単位でリモートリポジトリを指定する必要がある。なぜなら、これらの指定がうまくできていなければ、git pushやgit pullをする際に、追跡対象のリモートブランチを毎回指定する必要があるからである。
設定手順
このシチュエーションを解決するための方法は以下のようになる。 まず、各リポジトリに対して別々のoriginを作成
$ git remote add origin-dev [開発用リポジトリのURL]
$ git remote add origin-prod [本番用リポジトリのURL]
次に、特定のブランチで作業をしているときに、そのブランチにおいて希望の追跡リモートブランチを指定する
テスト用のブランチ
$ git branch --set-upstream-to origin-dev/develop develop
$ git branch --set-upstream-to origin-dev/staging staging
本番用のブランチ
git branch --set-upstream-to origin-prod/main main
これにより、git pushやgit pullを実行するときに、指定したリモートリポジトリで操作が実行される
もし、以下のようにローカルでリモートブランチが見つからないと怒られたら、
error: the requested upstream branch 'origin-production/main' does not exist
一度リモートをfetchして再度試すと成功するはず
git fetch origin-production main
まとめ
ブランチ単位でリモートリポジトリを指定することは、開発環境と本番環境が異なるリポジトリに別れている場合など、チームでの開発作業をより効率的に行うための有効な手段です。この設定により、チームはコードベースに対する操作をより柔軟に行うことが可能となり、開発プロセスの生産性と効率性を向上させることができます。