Apa perbedaan antara HEADdan masterdi Git?
Saya melakukan klon proyek di GitHub dan ingin mendorong perubahan saya ke remote. Tapi ke mana saya harus mendorong?

Apa perbedaan antara HEADdan masterdi Git?
Saya melakukan klon proyek di GitHub dan ingin mendorong perubahan saya ke remote. Tapi ke mana saya harus mendorong?

Jawaban:
masteradalah referensi ke ujung cabang. Secara konvensi (dan secara default) ini biasanya cabang integrasi utama, tetapi tidak harus demikian.
HEADsebenarnya adalah jenis referensi khusus yang menunjuk ke referensi lain. Mungkin menunjuk master atau mungkin tidak (itu akan menunjuk ke cabang mana saja yang saat ini sedang diperiksa). Jika Anda tahu Anda ingin melakukan ke mastercabang maka dorong ke sini.
Ini adalah contoh visual:

Di repositori Anda sendiri, Anda dapat memeriksa ke mana arah HEADmenunjuk dengan menjalankan ini:
$ git symbolic-ref HEAD
refs/heads/master
Namun, mencari tahu ke mana remotes/origin/HEADarahnya lebih rumit karena berada di mesin jarak jauh.
Ada sedikit tutorial hebat tentang referensi git di sini:
http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1
Jawaban sederhananya adalah itu HEADadalah penunjuk / label untuk komit terbaru dari cabang tempat Anda saat ini. masteradalah cabang default yang dibuat ketika Anda menginisialisasi repositori git (mis git init.).
Anda dapat menghapus mastercabang (mis git branch -D master.). Anda tidak dapat menghapus HEADpointer.
HEADadalah penunjuk / label untuk komit terbaru dari cabang tempat Anda saat ini." Saya pikir ini paling menyesatkan. Jika Anda checkout komit yang lebih lama, maka HEAD sekarang adalah pointer ke komit yang lebih lama, bukan komit yang terbaru. Baik?
checkoutperintahnya sama dengan mengganti cabang dalam sistem SCM umum lainnya.
HEADsebenarnya pointer Git . Saya menghargai komentar Anda dan berpikir orang lain juga akan. Konten posting asli saya bersama dengan komentar tindak lanjut Anda saling melengkapi. Terima kasih.
Cukup dorong perubahan cabang Anda saat ini
git push origin
dan itu akan mendorong cabang Anda ' B' berubah menjadi ' origin/B'.
Jika Anda berada di mastercabang Anda , git akan mendorong ke origin/master.
Sebenarnya itu akan mendorong semua perubahan pada cabang lokal yang memiliki cabang terpencil yang cocok di origin. Itu dikendalikan oleh pengaturan config push.default .
Lihat juga mendorong RefSpecs di buku Pro Git .
Apa yang Anda lihat adalah bilah samping yang mewakili semua refspec repo jarak jauh Anda di fork GitX eksperimental dari proyek GitX .

The HEADakan menunjuk cabang default untuk jarak jauh itu.
Lihat git remote set-headhalaman manual :
Memiliki cabang default untuk kendali jarak jauh tidak diperlukan, tetapi memungkinkan nama kendali jarak jauh ditentukan sebagai pengganti cabang tertentu.
Misalnya, jika cabang default untukorigindiatur kemaster, makaorigindapat ditentukan di mana pun Anda biasanya menentukanorigin/master.