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 mainoriginと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が元のプロジェクトです。
関連ガイド
What Is a Git Remote?What is a Git remote? An explainer on named connections to hosted repositories, how push and fetch use them,…
What Is git clone?What is git clone? An explainer on how cloning copies a repository with its full history, sets up the origin…
What Is a Fork?What is a fork? Learn how forking creates your own server-side copy of a repository, how it powers open-sourc…