peringatan: refname 'KEPALA' ambigu

139

Saya baru mengenal Git dan saya tampaknya memiliki satu cabang terlalu banyak jika saya menjalankan perintah berikut:

warning: refname 'HEAD' is ambiguous.

Saya mendapatkan output berikut:

warning: refname 'HEAD' is ambiguous.
From github.com:dagda1/hornget
 * branch            master     -> FETCH_HEAD
warning: refname 'HEAD' is ambiguous.
warning: refname 'HEAD' is ambiguous.

Jika saya mengeksekusi git branch -a

Saya mendapatkan yang berikut ini:

HEAD
* master
remotes/emmekappa/master
remotes/origin/HEAD -> origin/master
remotes/origin/master

Saya bingung dengan remotes/origin/HEAD -> origin/master.

Apa ini dan bagaimana saya bisa menyingkirkan cabang ambigu.

Saya sampai pada tahap ini dengan melakukan penggabungan di mana saya pikir saya menambahkan cabang ambigu.

dagda1
sumber
11
Apa perintah pertama yang Anda coba jalankan? Tentunya bukanwarning: refname 'HEAD' is ambiguous.
Ben James
1
remotes/origin/HEAD -> origin/masterbukan masalah: itu hanya menunjukkan cabang mana yang default di remote origin. Cabang bernama HEADadalah.
Jakub Narębski
3
Saya pikir Anda perlu mengedit pertanyaan untuk menunjukkan perintah di mana Anda mencoba untuk mengeksekusi :)
Kris
Untuk mereproduksi ini, jalankan "git fetch origin HEAD: HEAD". Tampaknya ia mencoba untuk menggabungkan cabang saat ini menjadi cabang baru yang disebut, secara harfiah, KEPALA.
Brain2000

Jawaban:

224

Masalahnya adalah bahwa Anda memiliki cabang yang disebut HEADyang benar-benar berbahaya, karena itulah nama simbolis untuk cabang apa pun yang merupakan cabang saat ini .

Ganti nama itu:

git branch -m HEAD newbranch

maka Anda dapat memeriksanya dan memutuskan apa yang harus dilakukan (menghapusnya, atau menyimpan dengan nama cabang deskriptif)

( origin/HEADCabang jarak jauh tidak masalah)

u0b34a0f6ae
sumber
Ini juga dapat terjadi jika Anda memiliki file atau direktori dengan nama yang sama dengan cabang.
Matt Connolly
2
Meskipun origin/HEADmungkin tidak menjadi masalah, jika Anda secara tidak sengaja membuat cabang bernama origin/somebranchIS masalah (dan akan menghasilkan pesan kesalahan "ambigu" yang sama). Saat Anda mencoba menarik dari "somebranch", Anda akan berakhir dengan menarik dari cabang lokal (tidak disengaja) Anda daripada remote. Dalam hal itu, saya menemukan bahwa saran flickerfly untuk melakukan git branch -d origin/somebranchpekerjaan luar biasa.
machineghost
Itu memperbaikinya, terima kasih. Patut dicatat, cabang "KEPALA" dibuat secara otomatis, bukan oleh saya. Itu berisi komit gabungan tunggal dan saya gagal kembali ke keadaan bersih menggunakan reflog. Jadi, saya mengganti nama cabang, menghapusnya, mengubah master lokal "1 depan" saya ke asal / master, mendorong tanpa masalah
Yunus Nedim Mehel
1
Hal yang sama dapat terjadi pada tag, tidak hanya cabang.
sebix
1
hah! Saya bekerja dengan robot yang memiliki kepala dan telah membuat cabang bernama head(huruf kecil).
orion elenzil
36

Juga, ini akan menghapus cabang, jika Anda tidak menginginkannya.

git branch -d HEAD

Gunakan modal -Duntuk memaksa penghapusan:

git branch -D HEAD
Josiah
sumber
3
tetapi masih akan tetap ambigu, apakah ada cara untuk membersihkannya?
RzR
27

Jika Anda telah membuat tag dengan nama HEADmenggunakan ...

git tag HEAD

... Anda bisa menghapus tag itu menggunakan:

git tag -d HEAD

Lihat kasus ini: kerneltrap.org/git-tag KEPALA

Bengt
sumber
Ini terjadi ketika Anda menambahkan tag dengan nama HEAD karena kesalahan, jadi Anda harus menghapusnya seperti yang disarankan di sini
user1610308
1

Ini artinya Anda memiliki cabang bernama "head". Saya memiliki masalah yang sama, saya menyelesaikannya dengan melakukan perintah berikut.

git branch -d head
stacksonstacksonstacks
sumber
1

Periksa referensi yang tersedia di repositori git Anda. Anda akan mengamati dua KEPALA dalam repositori Anda. Ini membuat cabang Anda dengan refname KEPALA ambigu.

git show-ref

Larutan:

  • Ganti nama cabang

    git branch -m HEAD <new_branch_name>
    

    ATAU

  • Hapus cabang

    git branch -d HEAD
    
Darshan
sumber