Ini mungkin pertanyaan bodoh, tapi saya baru git dan saya melihat cabang terpencil yang tidak ada lagi.
$ git branch -a
* master
remotes/origin/master
remotes/origin/production
Saya tidak percaya cabang produksi ada jarak jauh dan tidak tahu mengapa itu masih menunjukkan secara lokal. Bagaimana saya bisa menghapus / menghapus cabang ini? Seperti apa upaya untuk menghapusnya:
$ git push origin :production
error: unable to push to unqualified destination: production
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to 'git@IP:puppet.git'
Saya dapat checkout cabang produksi yang seharusnya jauh tetapi mendapatkan ini:
$ git checkout origin/production
Note: checking out 'origin/production'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD is now at c323996... added powerdns module, no really
Saya tidak tahu apa yang saya lakukan. Bantuan apa pun akan dihargai.
git branch -a
setelahgit fetch
?Jawaban:
Kamu harus melakukan:
sumber
Jadi ada dua masalah. Dalam kedua kasus, ingatlah Git didistribusikan.
Pertama. Ketika Anda melakukan hal-hal seperti
operasi dilakukan pada repo lokal Anda BUKAN komputer jarak jauh. Dengan kata lain, repo lokal Anda melaporkan semua cabang yang diketahui. Ini bisa berupa cabang lokal (seperti 'master') atau cabang jarak jauh yang diambilnya dari jarak jauh. Sejak pengambilan terakhir, cabang 'produksi' dari repo jarak jauh telah berubah, tetapi repo lokal Anda tidak mengetahui hal ini. Jawaban dari manojlds , sudah benar. Lari
untuk menghapus cabang basi.
Perintah 'git push origin: production' digunakan untuk menghapus cabang dari repo git komputer jarak jauh. Bukan repo lokal Anda. Dalam hal ini, orang lain telah menghapus cabang pada git repo komputer jarak jauh, sehingga Anda melihat pesan kesalahan ini.
Berikut adalah tautan yang merangkum perintah-perintah ini.
Masalah kedua berkaitan dengan checkout.
Saat memeriksa cabang, Anda ingin melakukannya dari cabang lokal , bukan cabang jarak jauh. Itu sebabnya Anda mendapatkan kesalahan tentang KEPALA terpisah. The git-catatan repo memiliki penjelasan yang baik dari masalah secara rinci berdarah. Pada dasarnya frasa kuncinya adalah
Sekarang, bagaimana cara memeriksa cabang lokal, yang sama dengan cabang jarak jauh?
Mudah, Anda membuat cabang lokal, pada saat checkout cabang terpencil.
sumber
benar, cukup menambahkan Anda dapat menggunakan
--dry-run
opsi, yang melaporkan cabang apa yang akan dipangkas dari repo lokal Anda, tetapi tidak benar-benar memangkasnyasumber