初めに
GitをCLI操作し始めてから、origin
って単語をよく目にするようになりました。
最近ようやく意味を知ったので備忘としてアウトプットします。
originとは
Gitでブランチをチェックアウトする時、git checkout
コマンドを使用します。
$ git checkout -b testBranch origin/testBranch
-b
の後が「作成するローカルブランチの名前」と「リモートブランチの名前」なのですが、ここで指定するorigin
がよく分かっていませんでした。
前提:ローカルリポジトリは複数のリモートリポジトリと紐づけることが可能
前提としてローカルリポジトリは複数のリモートリポジトリを紐づけることが可能です。
git remote -v
のコマンドで現在紐づいている一覧を見ることができます。
$ git remote -v
another https://github.com/username/gitTest2.git (fetch)
another https://github.com/username/gitTest2.git (push)
origin https://github.com/username/gitTest.git (fetch)
origin https://github.com/username/gitTest.git (push)
この例では、gitTest.git
とgitTest2.git
という二つのリポジトリが紐づいていますね。
originとはデフォルトのリモートリポジトリのエイリアス
もうお分かりの方もいるかと思いますが、origin
とはデフォルトのリモートリポジトリのエイリアスです。
ローカルリポジトリをリモートリポジトリに紐づける際、各リモートリポジトリにエイリアスを設定することができます。そのデフォルトがorigin
というわけです。
通常のgit clone
をした場合、origin
というエイリアスで登録されます。
$ git clone https://github.com/username/gitTest.git
$
$ git remote -v
origin https://github.com/username/gitTest.git (fetch)
origin https://github.com/username/gitTest.git (push)
clone
時に --origin
オプションを利用することで、エイリアスを指定することもできます。
$ git clone --origin another https://github.com/username/gitTest2.git
$
$ git remote -v
another https://github.com/username/gitTest2.git (fetch)
another https://github.com/username/gitTest2.git (push)
ちなみに、git remote addでリモートを紐づける際は、必ずエイリアスの指定が必要です。originの場合も同様です。
$ git remote add origin https://github.com/username/gitTest.git
$
$ git remote -v
origin https://github.com/username/gitTest.git (fetch)
origin https://github.com/username/gitTest.git (push)
originは何に使うの
前述の通り、origin
はデフォルトのリモートブランチを指定するためのエイリアスです。
リポジトリの指定が必要なコマンドを使用する際にその効果を発揮します。
例えば、fetch
などですね。
$ git fetch ← git fetch originと同義
$
$ git fetch another ← 通常はリモートリポジトリのエイリアスを指定する
終わりに
ということで本日はGit
のorigin
について書きました。
GUI使ってると意識しなくてもできたので気にしてなかったですが、コマンドで操作する際は気になりますよね。
今後も気になったものは調べていこうと思います。