GitのHEAD
とmaster
の違いは何ですか?HEADとマスタの違い
私はGitHub上でプロジェクトのクローンを作成し、その変更をリモートにプッシュしたいと思います。しかし、どちらを押すべきでしょうか?
GitのHEAD
とmaster
の違いは何ですか?HEADとマスタの違い
私はGitHub上でプロジェクトのクローンを作成し、その変更をリモートにプッシュしたいと思います。しかし、どちらを押すべきでしょうか?
は、単にあなたの現在のブランチ
git push origin
の変更をプッシュし、それはorigin/B
」にあなたのブランチ 'B
' 変更をプッシュします。
master
ブランチにいる場合、gitはorigin/master
にプッシュします。
実際には、一致するリモートブランチを持つローカルブランチのすべての変更がorigin
にプッシュされます。設定はpush.defaultです。
pushing RefSpecs in the Pro Git bookも参照してください。あなたが見ている何
はGitX projectのExperimental GitX forkにリモートレポのすべてrefspecsを表すサイドバーです。
HEAD
は、そのリモートのデフォルトのブランチを指定します。
が必要とされていないリモートのデフォルトの支店を持つが、リモートの名前は特定のブランチの代わりに指定することができます:
はgit remote set-head
man pageを参照してください。
たとえば、origin
のデフォルトブランチがmaster
に設定されている場合、通常origin/master
を指定する場合はいつでもorigin
を指定できます。
master
は、ブランチの末尾への参照です。通常、(そしてデフォルトで)これは通常、主要な統合ブランチですが、必ずしもそうである必要はありません。
HEAD
は実際には別の参照を指し示す特別なタイプの参照です。 master
を指すか、を指していない可能性があります(現在チェックアウトされているブランチを指します)。 master
ブランチにコミットしたい場合は、これを押します。
$ git symbolic-ref HEAD
refs/heads/master
しかし、どこremotes/origin/HEAD
見つける:HEAD
はこれを実行することによってを指している場所を確認することができ、独自のリポジトリで
:ここ
は、視覚的な例です。それがリモートマシン上にあるため、より厄介です。
ここでGitの参照に大きな少しのチュートリアルがあります:
http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1
簡単な答えはHEAD
はあなたが現在いるブランチのコミットを最新のポインタ/ラベルであるということです。 master
は、gitリポジトリを初期化したときに作成されるデフォルトのブランチです(例:git init
)。
master
ブランチ(例:git branch -D master
)を削除できます。ポインタHEAD
は削除できません。
"' HEAD'はあなたが現在行っているブランチの最新のコミットに対するポインタ/ラベルです。 "私はこれが最高の誤解を招くと思います。古いコミットをチェックアウトした場合、HEADはその直前のコミットへのポインタになり、最新のコミットへのポインタにはなりません。右? – LarsH
あなたは正しいです。 HEADは最新のチェックアウトです。しかし私の防御では、Gitの 'checkout'コマンドは、他の一般的なSCMシステムのブランチを切り替えるのと同じです。 – benhorgen
私は同情します...私は簡単に同じ間違いを犯すことができました。私が気づいた唯一の理由は、HEADが本当に意味するものを研究しようとしている段階にあるからです。あなたの答えを正しく編集することができたら、どんな機会ですか?私は、自分自身のようなgit非専門家にとっては、HEADが正確な記述を見つけるのが難しいコンセプトであることがわかります。そして、HEADについての*間違った情報を与えるウェブ上にそこに座っているアドバイスを持っていると、かなり難しくなります。 – LarsH
+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