Je ne peux pas supprimer origin/master
de mon serveur. Je ne sais pas pourquoi.
Le message d'erreur est le suivant
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'
Non, je n'utilise pas Github .
master
, et nous l'avons fait sur une branche temporelle qui devrait maintenant devenirmaster
. Le seul problème est que je ne sais pas pourquoi je ne peux pas tuer le maître sur le serveur.master
àorigin/master
le remplacer, en remplaçant efficacement l'ancien par le nouveau.Réponses:
Fait amusant: même les référentiels distants sont sur une branche. Vous êtes rejeté parce que vous essayez de supprimer la branche que votre origine a actuellement "retirée".
Si vous avez un accès direct au référentiel, vous pouvez simplement ouvrir un répertoire shell repor nu et utiliser le bon vieux
git branch
pour voir l'origine de la branche. Pour le changer dans une autre branche, vous devez utilisergit symbolic-ref HEAD refs/heads/another-branch
.Si vous utilisez un service comme Github ou Gitorious, vous devrez utiliser l'interface utilisateur que l'outil vous fournit pour effectuer le changement (voir cette réponse pour savoir comment le faire dans les outils courants).
la source
refs
dans Git ! Merci beaucoup! (Oui, je savais comment y faire face sur Github , mais pas sur notre serveur personnel.)Au lieu de supprimer réellement le maître du serveur, vous pouvez le remplacer comme ceci:
Cela remplacera master par le contenu d'une autre branche, mais il sera toujours appelé master sur la télécommande. Et puis, vous pouvez vérifier maître en tant que maître dans votre section locale.
la source
master
branche, et la réponse acceptée explique pourquoi.