Come cancello origin / master in Git


10

Non riesco a rimuovere origin/masterdal mio server. Non ho idea del perché.

Schermata del mio terminale

Il messaggio di errore è il seguente

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 acanzian@elab.ecn.purdue.edu:/export/home/a/elabshare/git/ID-check.git
 ! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to 'acanzian@elab.ecn.purdue.edu:/export/home/a/elabshare/git/ID-check.git'

No, io sto non usando Github .


1
Perché vorresti farlo? Ci sono altri rami?
Daniel B,

In effetti ci sono altri rami (controlla il link all'immagine, in realtà, potresti mostrarlo per me, per favore?). Abbiamo dovuto rifare mastere l'abbiamo fatto su un ramo temporale che ora dovrebbe diventare master. L'unico problema è che non so perché non riesco a uccidere il master sul server.
Atcold

2
Forse non è la risposta che state cercando, ma si potrebbe costringere-spingere la base di riferimento = mastera origin/master, sostituendo efficacemente il vecchio con il nuovo.
SlightlyCuban,

Oltre al messaggio di errore, inserisci il comando che stai utilizzando.
Kyralessa,

@Kyralessa, controlla lo screenshot.
Atcold

Risposte:


7

Curiosità: anche i repository remoti si trovano su un ramo. Vieni rifiutato perché stai cercando di eliminare il ramo che la tua origine ha attualmente "estratto".

Se si ha accesso diretto al repository, è sufficiente aprire una directory di repor bare shell e usare il buon vecchio git branchper vedere quale origine di ramo è attualmente attiva. Per cambiarlo in un altro ramo, devi usare git symbolic-ref HEAD refs/heads/another-branch.

Se stai utilizzando un servizio come Github o Gitorious, dovrai utilizzare l'interfaccia utente che lo strumento ti fornisce per apportare la modifica (vedi questa risposta per come farlo negli strumenti comuni).


Impressionante, ha funzionato e mi ha dato la possibilità di imparare di più su refsin Git ! Grazie mille! (Sì, sapevo come
gestirlo

12

Invece di rimuovere effettivamente il master dal server, è possibile sostituirlo in questo modo:

git push origin otherbranch:master -f

Ciò sostituirà master con il contenuto di otherbranch, ma sarà comunque chiamato master sul telecomando. E poi puoi controllare master come master nel tuo locale.


Ok grazie! So di poter forzare le cose, ma mi chiedevo esattamente perché non potevo rimuovere il masterramo e la risposta accettata spiega perché.
Atcold

1
+1. Questo è stato l'unico modo in cui ho potuto eliminare un primo commit errato su telecomandi / origine / master.
ctn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.