2010-12-08 6 views
147

GitのHEADmasterの違いは何ですか?HEADとマスタの違い

私はGitHub上でプロジェクトのクローンを作成し、その変更をリモートにプッシュしたいと思います。しかし、どちらを押すべきでしょうか?

screenshot

答えて

6

は、単にあなたの現在のブランチ

git push origin 

の変更をプッシュし、それはorigin/B」にあなたのブランチ 'B' 変更をプッシュします。
masterブランチにいる場合、gitはorigin/masterにプッシュします。
実際には、一致するリモートブランチを持つローカルブランチのすべての変更がoriginにプッシュされます。設定はpush.defaultです。
pushing RefSpecs in the Pro Git bookも参照してください。あなたが見ている何


GitX projectExperimental GitX forkにリモートレポのすべてrefspecsを表すサイドバーです。

alt text

HEADは、そのリモートのデフォルトのブランチを指定します。

が必要とされていないリモートのデフォルトの支店を持つが、リモートの名前は特定のブランチの代わりに指定することができます:
git remote set-head man pageを参照してください。
たとえば、originのデフォルトブランチがmasterに設定されている場合、通常origin/masterを指定する場合はいつでもoriginを指定できます。

120

masterは、ブランチの末尾への参照です。通常、(そしてデフォルトで)これは通常、主要な統合ブランチですが、必ずしもそうである必要はありません。

HEADは実際には別の参照を指し示す特別なタイプの参照です。 masterを指すか、を指していない可能性があります(現在チェックアウトされているブランチを指します)。 masterブランチにコミットしたい場合は、これを押します。

$ git symbolic-ref HEAD 
refs/heads/master 

しかし、どこremotes/origin/HEAD見つける:HEADはこれを実行することによってを指している場所を確認することができ、独自のリポジトリで

alt text

:ここ

は、視覚的な例です。それがリモートマシン上にあるため、より厄介です。

ここでGitの参照に大きな少しのチュートリアルがあります:

http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1

+1

+1私よりも正確な答え。 http://stackoverflow.com/questions/3301956/git-correct-way-to-change-active-branch-in-a-bare-repository/3302018#3302018およびhttp://stackoverflow.com/questions/も参照してください。 3301956/git-correct-way-to-change-active-a-bare-repositoryを使用して、これらの概念を説明します。 – VonC

25

簡単な答えはHEADはあなたが現在いるブランチのコミットを最新のポインタ/ラベルであるということです。 masterは、gitリポジトリを初期化したときに作成されるデフォルトのブランチです(例:git init)。

masterブランチ(例:git branch -D master)を削除できます。ポインタHEADは削除できません。

+2

"' HEAD'はあなたが現在行っているブランチの最新のコミットに対するポインタ/ラベルです。 "私はこれが最高の誤解を招くと思います。古いコミットをチェックアウトした場合、HEADはその直前のコミットへのポインタになり、最新のコミットへのポインタにはなりません。右? – LarsH

+1

あなたは正しいです。 HEADは最新のチェックアウトです。しかし私の防御では、Gitの 'checkout'コマンドは、他の一般的なSCMシステムのブランチを切り替えるのと同じです。 – benhorgen

+0

私は同情します...私は簡単に同じ間違いを犯すことができました。私が気づいた唯一の理由は、HEADが本当に意味するものを研究しようとしている段階にあるからです。あなたの答えを正しく編集することができたら、どんな機会ですか?私は、自分自身のようなgit非専門家にとっては、HEADが正確な記述を見つけるのが難しいコンセプトであることがわかります。そして、HEADについての*間違った情報を与えるウェブ上にそこに座っているアドバイスを持っていると、かなり難しくなります。 – LarsH

関連する問題