Saya cukup yakin saya melihat suatu tempat dalam proyek Git yang populer cabang-cabang memiliki pola seperti "fitur / xyz".
Namun ketika saya mencoba membuat cabang dengan karakter garis miring, saya mendapatkan kesalahan:
$ git branch labs/feature
error: unable to resolve reference refs/heads/labs/feature: Not a directory
fatal: Failed to lock ref for update: Not a directory
Masalah yang sama untuk (upaya awal saya):
$ git checkout -b labs/feature
Bagaimana cara membuat cabang di Git dengan karakter garis miring?
HEAD
. Sepertinya git berpikir AndaHEAD
adalah tautan ke cabanglabs/feature
yang belum dibuat. Saya tidak tahu bagaimana ini bisa terjadi, tetapi itu berarti bahwa upaya Anda untuk membuat cabang dipanggilfoo/bar
berdasarkan itu, itu tidak berfungsi. Tahu bagaimana Anda bisaHEAD
berhenti?.git/refs/heads
yaitu jika Anda melakukannyagit checkout -b feature/123
di dalamprojectRootFolder/.git/refs/heads
direktori Anda, Anda akan melihat direktori bernama: difeature
mana di dalam direktori itu Anda akan melihat cabang bernama123
. Nanti jika Anda membuat yang lainfeature/124
di dalamfeature
direktori, Anda akan melihat cabang bernama124
HEAD
" Nice one @CBBaileyJawaban:
Apakah Anda yakin cabang
labs
belum ada (seperti di utas ini )?sumber
foo
' namespace), tetapi tidakfoo
(yang bisa berfungsi sebagai namespace untuk cabang lain atau menjadi cabang itu sendiri)pack-refs
, jadi itu akan menghalangi Anda untuk melindungi Anda dari ini.labs
cabang dan mencoba membuatlabs/feature
, yang ditolak git.Dimungkinkan untuk memiliki nama cabang hierarkis (nama cabang dengan garis miring). Sebagai contoh di repositori saya, saya memiliki cabang seperti itu. Satu peringatan adalah bahwa Anda tidak dapat memiliki kedua cabang 'foo' dan cabang 'foo / bar' di repositori.
Masalah Anda bukan dengan membuat cabang dengan nama slash.
Pesan kesalahan di atas berbicara tentang 'labs / fitur' cabang, bukan 'foo / bar' (kecuali itu adalah kesalahan dalam copy'n'paste, yaitu Anda mengedit bagian sesi). Apa hasil dari
git branch
ataugit rev-parse --symbolic-full-name HEAD
?sumber
Terkadang masalah itu terjadi jika Anda sudah memiliki cabang dengan nama dasar.
Saya mencoba ini:
Sayangnya, saya sudah memiliki cabang bernama
features
, dan saya mendapat pengecualian dari penanya pertanyaan.Menghapus cabang
features
menyelesaikan masalah, perintah di atas berhasil.sumber
Dalam kasus saya, saya lupa bahwa sudah ada
labs
cabang yang tidak digunakan . Menghapusnya memecahkan masalah:Penjelasan:
Setiap nama hanya bisa menjadi cabang induk atau cabang normal, bukan keduanya. Itu sebabnya cabang
labs
danlabs/feature
tidak bisa ada keduanya pada saat yang sama.Alasan untuk perilaku ini adalah bahwa cabang disimpan dalam sistem file dan di sana Anda juga tidak dapat memiliki file
labs
dan direktorilabs
pada tingkat yang sama.sumber
Saya bisa saja salah, tetapi saya berpikir bahwa garis miring hanya muncul dalam nama cabang ketika terkait dengan repo jarak jauh, misalnya
origin/master
.sumber