❤恋するコンピュータサイエンス❤

コンピュータサイエンス、3DCGをもっと楽しく、もっと本質的に!c言語、c++の記事中心です

origin/main とmain とorigin mainの違いは何か?

Q.
origin/main とmain とorigin mainの違いは何か?

(main は、masterと同じ意味)

A.

originとは

リモートリポジトリのアクセス先に対してGitがデフォルトでつける名前です。

この説明だとイメージしづらいかと思うので、実際にリモートリポジトリのアクセス先の設定を以下コマンドで確認してみます。

 

リモートリポジトリのアクセス先
(例. https://github.com/donchan922/rails-board.git)がoriginという名前で設定されていることがわかります。

改めて以下コマンドを見てみます。

$ git push origin master
$ git pull origin master

 

これらは、リモートリポジトリ(例. origin = https://github.com/donchan922/rails-board.git)に対して、pushpullを行っているということです。

凡人: 「origin/main」と「main」と「origin main」って何が違うの?

恋するコンピュータサイエンス: いい質問だね!まず、「origin」はGitでリモートリポジトリのアクセス先に対してデフォルトでつけられる名前だよ。

凡人: リモートリポジトリって?

恋するコンピュータサイエンス: リモートリポジトリはインターネット上にあるコードの保存場所のこと。たとえばGitHub上のプロジェクトのリポジトリだね。

凡人: じゃあ、「origin/main」は何?

恋するコンピュータサイエンス: 「origin/main」は、リモートリポジトリ(つまり「origin」)の「main」ブランチを指すんだ。ここで「main」はブランチの名前で、ローカルの中心となる統合ブランチを指すよ。

凡人: なるほど。では、「origin main」は?

恋するコンピュータサイエンス: 実は「origin main」という用語はそのままでは正しくないんだ。でも、コマンドの文脈では意味があるよ。例えば、「git push origin main」はリモートリポジトリ「origin」の「main」ブランチにデータを送ることを意味する。

凡人: なるほど、それぞれが違うものを指してるんだね。分かりやすい説明ありがとう!

origin main

originリポジトリの名前でmainはブランチの名前になります。
デフォルトの設定の場合、originというリモートリポジトリのmainブランチを表します。

main(ブランチ)

ローカルの中心となる統合ブランチで、他のローカルの作業ブランチと繋がったもの。

 

参考

https://qiita.com/wann/items/688bc17460a457104d7d