Saya mencoba mendorong cabang lokal baru product-0.2
ke jarak jauh di mana sudah ada tag dengan nama yang sama (tetapi cabang itu sendiri tidak ada)
git push -v --tags --set-upstream origin product-0.2:product-0.2
Pushing to https://****@github.com/mycompany/product.git
error: src refspec product-0.2 matches more than one.
error: failed to push some refs to 'https://****@github.com/mycompany/product.git'
Sama dengan:
git push origin product-0.2:/refs/heads/product-0.2
Meskipun cara lain bekerja, misalnya membuat cabang product-0.1
, komit di atasnya lalu terapkan tag product-0.1
.
Beberapa orang mengatasinya dengan menghapus tag yang bentrok secara lokal, lalu mendorong cabang, lalu mengambil tag jarak jauh, tetapi tampaknya rumit dan rawan kesalahan.
Bagaimana saya bisa membuat cabang saya dengan sedikit keributan?
Terima kasih atas masukan Anda
git
git-branch
Andai
sumber
sumber
refs/heads/product-0.2:refs/heads/product-0.2
, yaitu tanpa garis miring, dan juga memberikan refspec penuh di sisi lokal.Jawaban:
Perintah berikut harus berfungsi.
sumber
refs/remotes/remote_name/remote_branch
master
Tanpa sadar menamai rilis yang diberi tag dan tidak bisa lagi mendorong ke cabang dengan nama yang sama.git push origin refs/heads/master
melakukan trik (lalu saya menghapus tag itu sehingga berhenti terjadi).Verifikasi tag apa yang terkait dengan cabang Anda:
Dalam kasus saya, saya memiliki tag dengan nama cabang yang sama. Berhasil menghapusnya:
sumber
Ubah nama.
Apakah Anda melakukannya secara lokal atau jarak jauh, ubah saja namanya.
Sebuah tag dan sebuah cabang pada dasarnya adalah hal yang sama di git: mereka merepresentasikan sebuah pointer ke sebuah komit. Perbedaannya adalah bahwa penunjuk cabang maju saat Anda membuat komit, sementara tag tetap statis.
Namun , Anda dapat melakukan
git checkout
pada salah satu cabang atau tag. Mengapa Anda bertarung dengan semua nama yang digandakan ini? Ubah mereka.sumber
product-0.2.0
dengan digit terakhir untuk 'tingkat tambalan' tetapi tetap saja, kami memiliki konvensi penamaan di tempat dan kami tidak mengalami masalah di masa lalu ketika cabang dibuat sebelum tag.Jika Anda mencoba memasukkan tag yang memiliki nama cabang yang sama:
sumber
Saya mencoba mengirim ke repositori kanonik pagi ini dan mendapatkan kesalahan berikut:
Ini terjadi karena saya tidak sengaja membuat tag master secara lokal:
Setelah saya menghapus tag ini secara lokal:
Saya bisa mendorong lagi.
sumber
Ini gagal:
Sementara ini berhasil untuk saya:
sumber
Jika Anda menggunakan pohon sumber, ikuti langkah-langkah berikut.
Coba lagi untuk mendorong perubahan Anda. sekarang ini akan berhasil.
sumber