Я не могу удалить origin/master
с моего сервера. Понятия не имею почему.
Сообщение об ошибке следующее
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'
Нет, я не использую Github .
master
, и мы делали это на временной ветке, которая сейчас должна статьmaster
. Единственная проблема в том, что я не знаю, почему я не могу убить мастера на сервере.master
чтобыorigin/master
эффективно заменить старый на новый.Ответы:
Интересный факт: даже удаленные репозитории находятся на ветке. Вы получаете отказ, потому что вы пытаетесь удалить ветку, которую ваш источник в настоящее время "извлек".
Если у вас есть прямой доступ к репо, вы можете просто открыть каталог пустых репортов оболочки и использовать старый добрый каталог,
git branch
чтобы увидеть, в каком из источников находится ветка. Чтобы изменить его на другую ветку, вы должны использоватьgit symbolic-ref HEAD refs/heads/another-branch
.Если вы используете такой сервис, как Github или Gitorious, вам придется использовать пользовательский интерфейс, который инструмент предоставляет вам для внесения изменений (см. Этот ответ, чтобы узнать, как это сделать в обычных инструментах).
источник
refs
в Git ! Большое спасибо! (Да, я знал о том, как с этим справляться на Github , но не на нашем личном сервере.)Вместо того, чтобы фактически удалить мастер с сервера, вы можете заменить его следующим образом:
Это заменит master на содержимое другого филиала, но все равно будет называться master на удаленном компьютере. И тогда вы можете проверить мастер как мастер в вашем местном.
источник
master
ветку, и принятый ответ объясняет почему.