Apa maksud dari git push origin HEAD?

103

Saya menemukan, di panduan resmi :

git push origin HEAD

Cara praktis untuk mendorong cabang saat ini ke nama yang sama di remote.

Namun, arti perintah tersebut tidak jelas bagi saya. Mengapa ini memiliki efek ini?

Saya belum bisa menemukan jawaban ( pertanyaan ini sepertinya mengatasi masalah, tapi judulnya menyesatkan).

scristalli
sumber

Jawaban:

131

HEADmenunjuk ke atas cabang saat ini. gitbisa mendapatkan nama cabang dari itu. Jadi sama saja dengan:

git push origin CURRENT_BRANCH_NAME

tetapi Anda tidak harus mengingat / mengetik nama cabang saat ini. Juga mencegah Anda mendorong ke cabang jarak jauh yang salah secara tidak sengaja.

Jika Anda ingin mendorong cabang yang berbeda dari yang sekarang, perintah tidak akan berfungsi.

hek2mgl
sumber
17
Mungkin membantu untuk menyebutkan bahwa itu HEADadalah referensi simbolis, dan itu dapat dilihat dengan git symbolic-ref HEAD.
John Szakmeister
Apa perbedaan antara: git push origindan git push origin HEAD?
Maciek
1
@MaciejD git push origin tanpa menentukan nama cabang tidak akan berfungsi. baik Anda menambahkan nama cabang atau Anda mengatakan KEPALA, yang berarti cabang Anda saat ini
Schwarzie2478
2
Sebenarnya git push originadalah perintah yang valid. Jika push.defaultpengaturan konfigurasi Git diset ke nothingmaka git push origin"tidak akan mendorong apapun (kesalahan keluar)" sesuai man git-config. Tetapi push.defaultpengaturan lain memiliki perilaku lain. Telusuri push.defaultdalam man git-config. Juga cari "Saat baris perintah tidak menentukan di mana harus mendorong" dan "Saat baris perintah tidak menentukan apa yang harus didorong" di bagian deskripsi di atas man git-push(itu man git-push, bukan man git-config).
David Winiecki