Skip to content
Latchkey

Git remoteとは?

remoteは、GitHubなど別の場所にホストされたリポジトリのコピーへの名前付き参照で、そこへpushしfetchします。

remoteは、ローカルのGitリポジトリが共有のリポジトリと対話する手段です。それはoriginのような名前とURLの組にすぎません。他の人やCIが見られるよう、commitをremoteへpushし、他の全員の作業を取り込むためにremoteからfetchします。

remoteとは何か

remoteは、リポジトリの別のコピーへのブックマークで、短い名前とURLで識別されます。複数のremoteを持てます。たとえば正規のプロジェクト用に1つ、自分のfork用にもう1つといった具合です。remote-tracking branchはそれらのコピーの状態をローカルにミラーします。

remoteの扱い

remoteを一覧表示し、追加し、確認し、それから名前でpushやfetchを行えます。

Inspecting and adding remotes
git remote -v
git remote add upstream https://github.com/owner/project.git
git fetch upstream

pushとfetch

pushはローカルのcommitをremoteへ送ります。fetchは作業ファイルを変えずにremoteから新しいcommitをダウンロードします。pullはfetchとmergeの組み合わせです。これらの操作を通じて、チームはremoteを介して共有された履歴へ収束します。

CI/CDにおけるremote

remoteは、CI/CDシステムが監視するsource of truthです。remoteのbranchへのpushがpipelineをトリガーし、CIのrunnerはremoteからcloneして、pushされた正確なcommitをbuildします。Latchkeyのようなmanaged runnerプラットフォームは各jobの開始時にremoteリポジトリをチェックアウトするため、高速で信頼できるcloneがpipelineを機敏に保ちます。

よくあるremoteの作業

  • cloneした元のリポジトリにはoriginを使う。
  • forkから作業するときはupstreamのremoteを追加する。
  • 作業を始める前にfetchして最新の履歴を確認する。
  • CIとレビュアーが見られるようfeature branchをpushする。

重要なポイント

  • remoteは、リポジトリの別のコピーへの名前付きURLです。
  • push、fetch、pullは、ローカルとremoteの間でcommitを移動します。
  • CIはremoteを監視し、それをcloneしてpushされたcommitをbuildします。

関連ガイド