2010-12-12 19 views
2

'master' 'origin origin master' origin/master '、' remotes/origin/master 'の違いを理解できません。 GITブランチの命名規則はありますか? origin/masterはリポジトリのmasterブランチをローカルに反映しているのに対し、 'origin master'はリポジトリのmasterブランチですが、次にremote/origin/masterは何ですか?また、時にはorigin/masterを使ってリポジトリのmasterブランチを参照しなければならないこともあります(私はこのケースを忘れてしまいましたが、以前はそういうことになっていました)。GIT:ブランチ命名規則の理解の問題

答えて

4

これを正しく理解するには、git branching modelをお読みください。しかし、以下は、すばやく汚れた説明です。

gitのブランチは、コミットのDAGツリー内の特定のノードへのポインタです。いくつかの操作(コミットなど)を実行すると移動します。 masterは、デフォルトでは、新しいリポジトリを初期化するときに作成されるポインタです。それはあなたの「主要な枝」です(話す)。

gitは分散バージョン管理システムなので、ローカルリポジトリとリモートリポジトリ(githubにあるものなど)との間に違いがあります。これらはremoteと呼ばれ、初めてクローンを作成するときには、クローン作成元のリモートが自動的に作成され、origin(コードの発信元)という名前になります。

<remote>/<branch>と言うときは、ポインタ<branch>の位置はローカルクローンではなく、<remote>です。したがって、クローン作成後にローカルブランチに10回コミットすれば、master(ローカルブランチ)はorigin/masterより10コミット先になります。私たちがリモートについて話していることを明らかにするために、コンベンションremotes/<remote_name>/<branch_name>が使用されています。

gitを使用する前に、私がリンクしている本を読む必要があると思います。 svnなどのバージョン管理システムから来ている人にとっては直感的ではありません。 gitの分岐モデルは、集中システムの分岐モデルよりもずっと簡単です。

+3

/と言うときは、のポインタの場所はローカルクローンではなくです。 < - 私はあなたが何を意味するのか知っていますが、これは間違って表現されていると思います。/はローカルクローンのrefです。リポジトリのと一致するとは限りません。 /の状態をにキャッシュしているrefを "git fetch"、 "git pull"、または "git push"を最後に実行したときから考えるのが最も効果的だと思います(プッシュが更新された場合は)... –

+0

非常に良い点! –