Skip to content
Latchkey

origin remoteとは?

originは、cloneした元のremoteリポジトリにGitが与えるデフォルト名にすぎず、通常pushしfetchする場所です。

リポジトリをcloneすると、GitはcloneしたURLを指すoriginというremoteを自動的に作成します。この名前に特別なところはなく、慣例です。originが単なるデフォルトだと理解すれば、毎日実行するpushとpullのコマンドの謎が解けます。

originはどこから来るか

git cloneを実行すると、ソースURLを指すoriginという名前のremoteが設定され、その下にremote-tracking branchが作成されます。それ以降、git pushやgit pullのようなコマンドは、remoteを明示的に指定しないとoriginをデフォルトにします。

日常のコマンドにおけるorigin

たいていの場合、名前を指定せずにoriginに対してpushしpullしますが、明示することもできます。

Cloning sets up origin
git clone https://github.com/owner/project.git
git push origin main
git pull origin main

originとupstreamの比較

forkワークフローでは、通常originがあなたのforkを指し、upstreamという2つ目のremoteが元のプロジェクトを指します。originへpushし、upstreamから新しい変更をpullします。名前は慣例ですが、それに従うことでチームのメンタルモデルの一貫性が保たれます。

originとCI/CD

CIシステムは正規のリポジトリをcloneし、それがそのoriginになり、あなたがそこへpushしたcommitをbuildします。workflowがコードをチェックアウトするとき、それはこのoriginからfetchしています。どのremoteがoriginかを知っておくと、なぜpipelineが予期しないcommitやbranchをbuildしたのかをデバッグする際に役立ちます。

originを管理するためのヒント

  • originはデフォルト名であり、魔法のキーワードではない。名前を変えられる。
  • forkでは、originをあなたのforkに、upstreamをソースに向ける。
  • pushやpullが予期しない場所へ行ったら、git remote -vを確認する。
  • CIはローカルの設定とは独立に、自身のcloneをoriginとして使う。

重要なポイント

  • originは、cloneした元のremoteのデフォルト名です。
  • 別のremoteを指定しない限り、pushとpullはoriginをデフォルトにします。
  • forkでは、originがあなたのforkで、upstreamが元のプロジェクトです。

関連ガイド