Apa perbedaan antara HEAD
dan master
di Git?
Saya melakukan klon proyek di GitHub dan ingin mendorong perubahan saya ke remote. Tapi ke mana saya harus mendorong?
master
adalah referensi ke ujung cabang. Secara konvensi (dan secara default) ini biasanya cabang integrasi utama, tetapi tidak harus demikian.
HEAD
sebenarnya 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 master
cabang maka dorong ke sini.
Ini adalah contoh visual:
Di repositori Anda sendiri, Anda dapat memeriksa ke mana arah HEAD
menunjuk dengan menjalankan ini:
$ git symbolic-ref HEAD
refs/heads/master
Namun, mencari tahu ke mana remotes/origin/HEAD
arahnya 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
HEAD
adalah penunjuk / label untuk komit terbaru dari cabang tempat Anda saat ini.master
adalah cabang default yang dibuat ketika Anda menginisialisasi repositori git (misgit init
.).Anda dapat menghapus
master
cabang (misgit branch -D master
.). Anda tidak dapat menghapusHEAD
pointer.sumber
HEAD
adalah 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?checkout
perintahnya sama dengan mengganti cabang dalam sistem SCM umum lainnya.HEAD
sebenarnya 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
dan itu akan mendorong cabang Anda '
B
' berubah menjadi 'origin/B
'.Jika Anda berada di
master
cabang Anda , git akan mendorong keorigin/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
HEAD
akan menunjuk cabang default untuk jarak jauh itu.Lihat
git remote set-head
halaman manual :sumber