絶賛お勉強中のGitについてですが、今回整理したいのはいわゆる
git push origin master
のorigin や
git branch --set-upstream-to origin/master
にでてくる origin/master 、ローカルブランチとリモートブランチなどの件です。 オリジンってなんなのとか、 スラつけて書いたり書かなかったり、なんてのがとてもややこしいですよね。
ここでは、git clone してから git push するまで、どのようなことが起こっているかを整理しつつ、originとか origin/master とかってナンなのってのをまとめたいと思います
まず git clone したとき、ローカルのディレクトリには
が作成されます。origin/master はサーバにあるブランチだと漠然と思っていたのですが、どうもリモートのリポジトリのブランチを指し示す特別な、 'ローカルの' ブランチのようです。このことをリモートブランチと呼んでたりするんでややこしいです。
この「origin」には cloneした先のリポジトリサーバのURLが自動的に設定されていまます。
$ git config --list .... remote.origin.url=https://github.com/xxxx/hello.git
こんな感じです
ちなみに、このリモートリポジトリのサーバ名は自由に追加することができます
$ git remote origin $ git remote add teamone https://github.com/xxxx/hello.git 追加(ちなみに削除はremove) $ git remote origin teamone $ git config --list remote.origin.url=https://github.com/xxxx/hello.git remote.teamone.url=https://github.com/masatomix/helloworld1.git
さて、リモートのリポジトリをcloneしたとき、ローカルには
が作成されました。このリモートブランチは originサーバを追跡する特別なブランチで、直接自分では操作しません。originサーバは他人がプッシュすることで手元のリモートブランチと異なる場合が出てくるので、git fetch origin と打つことで直近化されます。pull や pushも含めて図にするとこんな感じ。
この記事は
現在のアクセス:6933