HEADとmasterGitの違いは何ですか?
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現在のブランチの最新のコミットへのポインター/ラベルです。masterは、git リポジトリを初期化したときに作成されるデフォルトのブランチです (例: git init)。
masterブランチを削除できます(例: git branch -D master)。HEADポインターを削除することはできません。
現在のブランチの変更をプッシュするだけです
git push origin
Bそして、ブランチ ' ' の変更を ' 'にプッシュしますorigin/B。
ブランチにいる場合master、git は にプッシュしorigin/masterます。
実際には、一致するリモート ブランチが にあるローカル ブランチにすべての変更をプッシュしますorigin。これは、構成設定push.defaultによって制御されます。Pro Git book の Push RefSpecs
も参照してください。
表示されているのは、GitX プロジェクトの実験的な GitX フォークにあるリモート リポジトリのすべての refspec を表すサイドバーです。

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