Bagaimana cara menghapus asal / master di Git

10

Saya tidak dapat menghapus origin/masterdari server saya. Tidak tahu kenapa.

Tangkapan layar terminal saya

Pesan kesalahan adalah sebagai berikut

remote: error: By default, deleting the current branch is denied, because the next
remote: error: 'git clone' won't result in any file checked out, causing confusion.
remote: error: 
remote: error: You can set 'receive.denyDeleteCurrent' configuration variable to
remote: error: 'warn' or 'ignore' in the remote repository to allow deleting the
remote: error: current branch, with or without a warning message.
remote: error: 
remote: error: To squelch this message, you can set it to 'refuse'.
remote: error: refusing to delete the current branch: refs/heads/master
To [email protected]:/export/home/a/elabshare/git/ID-check.git
 ! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to '[email protected]:/export/home/a/elabshare/git/ID-check.git'

Tidak, saya tidak menggunakan Github .

Atcold
sumber
1
Mengapa Anda ingin melakukan itu? Apakah ada cabang lain?
Daniel B
Memang ada cabang lain (periksa tautan ke gambar, sebenarnya, bisakah Anda menampilkannya untuk saya?). Kami harus rebase master, dan kami melakukannya pada cabang temporal yang sekarang menjadi master. Satu-satunya masalah adalah bahwa saya tidak tahu mengapa saya tidak bisa membunuh master di server.
Atcold
2
Mungkin bukan jawaban yang Anda cari, tetapi Anda bisa memaksa-paksa yang diubah mastermenjadi origin/master, mengganti yang lama dengan yang baru.
SlightlyCuban
Selain pesan kesalahan, silakan kirim perintah yang Anda gunakan.
Kyralessa
@ Kirralessa, periksa tangkapan layar.
Atcold

Jawaban:

7

Fakta menyenangkan: bahkan repositori jarak jauh ada di cabang. Anda ditolak karena Anda mencoba menghapus cabang yang asal Anda "periksa".

Jika Anda memiliki akses langsung ke repo, Anda bisa membuka direktori shell bare repor dan menggunakan yang lama git branchuntuk melihat asal cabang saat ini. Untuk mengubahnya ke cabang lain, Anda harus menggunakan git symbolic-ref HEAD refs/heads/another-branch.

Jika Anda menggunakan layanan seperti Github atau Gitorious, Anda harus menggunakan UI yang disediakan alat untuk melakukan perubahan (lihat jawaban ini tentang cara melakukannya di alat umum).

SlightlyCuban
sumber
Mengagumkan, bekerja dan itu memberi saya kesempatan belajar lebih banyak tentang refsdi Git ! Terima kasih banyak! (Ya, saya tahu tentang cara menghadapinya di Github , tetapi tidak di server pribadi kami.)
Atcold
12

Sebagai pengganti benar-benar menghapus master dari server, Anda dapat menggantinya seperti ini:

git push origin otherbranch:master -f

Itu akan menggantikan master dengan konten cabang lainnya, tetapi masih akan disebut master pada remote. Dan kemudian Anda dapat memeriksa master sebagai master di lokal Anda.

Kyralessa
sumber
Ok terima kasih! Saya tahu saya bisa memaksakan sesuatu, tetapi saya bertanya-tanya mengapa saya tidak bisa menghapus mastercabang, dan jawaban yang diterima menjelaskan mengapa.
Atcold
1
+1. Ini adalah satu-satunya cara saya bisa menghapus komit pertama yang buruk pada remote / origin / master.
ctn