HEADとmasterin Gitの違いは何ですか?
GitHubでプロジェクトのクローンを作成し、自分の変更をリモートにプッシュしたいと考えています。しかし、どちらにプッシュすればよいですか?

HEADとmasterin Gitの違いは何ですか?
GitHubでプロジェクトのクローンを作成し、自分の変更をリモートにプッシュしたいと考えています。しかし、どちらにプッシュすればよいですか?

回答:
masterブランチの終わりへの参照です。慣例により(そしてデフォルトで)、これは通常、メインの統合ブランチですが、そうである必要はありません。
HEAD実際には、別の参照を指す特別なタイプの参照です。指してmaster いる場合とそうでない場合があります(現在チェックアウトされているブランチを指します)。masterブランチにコミットしたい場合は、これにプッシュしてください。
ここに視覚的な例があります:

自分のリポジトリで、次のHEADコマンドを実行して、が指している場所を確認できます。
$ git symbolic-ref HEAD
refs/heads/master
ただし、remotes/origin/HEADリモートマシン上にあるため、が指している場所を見つけるのはより困難です。
ここにgitリファレンスに関する素晴らしい小さなチュートリアルがあります:
http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1
簡単な答えは、HEAD現在ブランチにある最新のコミットへのポインタ/ラベルです。mastergitリポジトリを初期化したときに作成されるデフォルトのブランチです(例:)git init。
masterブランチ(例:)を削除できgit branch -D masterます。HEADポインタは削除できません。
HEAD現在ブランチにある最新のコミットへのポインタ/ラベルです。」これはせいぜい誤解を招くだけだと思います。古いコミットをチェックアウトすると、HEADは最新のコミットではなく、その古いコミットへのポインターになります。正しい?
checkoutとって、このコマンドは他の一般的なSCMシステムでブランチを切り替えるのと同等です。
HEADポインターが実際に何であるかをより詳しく理解しようとしている人にとっては素晴らしい説明だと思います。私はあなたのコメントに感謝し、他の人もそうすると思います。私の元の投稿の内容とあなたのフォローアップコメントは互いに補完し合っています。ありがとう。
現在のブランチの変更をプッシュするだけです
git push origin
そして、ブランチ ' B'の変更を ' origin/B'にプッシュします。ブランチに
いる場合master、gitはにプッシュしorigin/masterます。
実際には、で一致するリモートブランチを持つローカルブランチ上のすべての変更がプッシュされoriginます。これは、構成設定push.defaultによって制御されます。Pro GitブックのRefSpecsのプッシュ
も参照してください。
表示されているのは、GitXプロジェクトの実験的GitXフォーク内のリモートリポジトリのすべてのrefspecを表すサイドバーです。

HEADそのリモートのデフォルトのブランチを指定します。manページを
参照してgit remote set-headください。
リモートにデフォルトのブランチを用意する必要はありませんが、特定のブランチの代わりにリモートの名前を指定できます。
例えば、場合のデフォルトのブランチがoriginに設定されmaster、その後、originあなたは通常、指定しますどこに指定することができますorigin/master。