Як видалити джерело / master у Git


10

Я не можу видалити 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 .


1
Чому б ти хотів це зробити? Чи є інші гілки?
Даніель Б

Дійсно, є й інші гілки (перевірте посилання на зображення, власне, чи можете ви мені це показати, будь ласка?). Нам довелося переосмислити master, і ми це зробили на тимчасовій гілці, яка зараз має стати master. Єдина проблема полягає в тому, що я не знаю, чому я не можу вбити майстра на сервері.
Atcold

2
Можливо, не відповідь, яку ви шукаєте, але ви можете змусити підштовхнути masterїх origin/master, фактично замінивши старий на новий.
SlightlyCuban

Окрім повідомлення про помилку, будь ласка, опублікуйте команду, яку ви використовуєте.
Kyralessa

@Kyralessa, перевірте скріншот.
Atcold

Відповіді:


7

Веселий факт: навіть віддалені сховища знаходяться на гілці. Вас відхиляють, оскільки ви намагаєтесь видалити гілку, яку ваше походження наразі "перевірило".

Якщо у вас є прямий доступ до репо, ви можете просто відкрити каталог з голими репортажами і скористатися старим добрим, git branchщоб побачити, яке поточне відділення зараз знаходиться. Щоб змінити його на іншу гілку, ви повинні використовувати git symbolic-ref HEAD refs/heads/another-branch.

Якщо ви користуєтесь такою послугою, як Github або Gitorious, вам доведеться скористатися інтерфейсом користувача, який надає вам інструмент для внесення змін (див. Цю відповідь про те, як це зробити в загальних інструментах).


Дивовижний, він працював , і це дало мені можливість більше дізнатися про refsв Git ! Дуже дякую! (Так, я знав про те, як з цим боротися на Github , але не на нашому персональному сервері.)
Atcold

12

Замість того, щоб фактично видалити майстер із сервера, ви можете замінити його так:

git push origin otherbranch:master -f

Це замінить майстер вмістом інших галузей, але він все одно буде називатися master на пульті. І тоді ви можете перевірити майстра як майстра у вашому місцевому.


Добре, дякую! Я знаю, що я можу примушувати речі, але мені було цікаво, чому я не можу видалити masterгілку, і прийнята відповідь пояснює, чому.
Atcold

1
+1. Це був єдиний спосіб, коли я міг видалити поганий перший фіксатор на віддалені / початкові / майстерні.
ctn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.