Я не можу видалити віддалену головну гілку на git


80

Мені потрібно видалити головну гілку, але це виявляється важко. Я просто хочу очистити цю гілку і розпочати нове. Я видаляю з гілки dev. Я хочу, щоб майстер на GitHub був чистим.

 # git push origin --delete master

> To https://github.com/mymasterb.git  ! [remote rejected] master
> (deletion of the current branch prohibited) error: failed to push some
> refs to 'https://github.com/mymaster.git'

Як я можу просто почати свого господаря зі свіжого аркуша?


Що ви маєте на увазі під словом "свіжий сланець"? Ви хочете, щоб ваша головна гілка була повністю порожньою, але ви хочете, щоб усі ваші інші гілки все ще були там?
Джон Лін,


можливий дублікат Як змінити віддалений HEAD Git, щоб вказати на щось, крім "master" . Дублікат, оскільки, оскільки в ньому сказано deletion of the current branch prohibited, очевидно, що поточну гілку потрібно змінити, що пояснює прийнята відповідь. Саме це пояснюється у запропонованому дублікаті, включаючи рішення github через тег.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Відповіді:


136

Як пояснив Метью Бретт у " Видалення вашої головної гілки ", вам потрібно змінити вашу гілку репозиторію GitHub за замовчуванням .

Вам потрібно перейти на сторінку GitHub для вашого розгалуженого сховища та натиснути кнопку «Налаштування».

Клацніть на вкладку "Гілки" ліворуч. У верхній частині екрана є розкривний список "Гілка за замовчуванням".

Звідти виберіть заповнювач (де заповнювач - фіктивне ім'я для вашої нової гілки за замовчуванням).

Підтвердьте, що хочете змінити свою гілку за замовчуванням.

Тепер ви можете зробити (з командного рядка):

git push origin :master

Або, починаючи з 2012 року, ви можете видалити ту саму гілку безпосередньо на GitHub :

Видалення GitHub

Це було оголошено у вересні 2013 року , через рік після того, як я спочатку написав цю відповідь.

Для невеликих змін, таких як виправлення документації, помилки друку або якщо ви просто прогулюючий компілятор програмного забезпечення, ви можете багато чого зробити у своєму браузері, не потребуючи клонування всього сховища на свій комп’ютер .


Примітка: для BitBucket Tum повідомляє у коментарях :

Приблизно те саме для Bitbucket

Repo -> Settings -> Repository details -> Main branch

Примітка: "заповнювач" є прикладом будь-якої іншої гілки, окрім master. Ідея полягає у визначенні іншої гілки як гілки репозиторію Github за замовчуванням.
VonC

@Tampa Я відредагував свою відповідь, щоб відобразити той факт, що зеленої галочки більше немає.
VonC

2
@ Alpha_989 В голом репо, щоб змінити гілку за замовчуванням, встановіть символьний-реф: stackoverflow.com/a/3302018/6309
VonC

2
Дякую! Приблизно те саме для Bitbucket. Repo -> Налаштування -> Деталі сховища -> Основне відділення
Tum

2
@Tum Дякую. Я включив ваш коментар у відповідь для більшої наочності.
VonC

8

Щоб відповісти на запитання буквально (оскільки GitHub відсутній у назві питання), також пам’ятайте про це повідомлення про суперкористувача. EDIT: відповідь скопійована тут у відповідній частині, дещо змінена для ясності в квадратних дужках:

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

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


Чи були б ви готові опублікувати це як коментар, а не як відповідь? Посилання на суперкористувача приємне.
zedfoxus 07.03.20

1
@zedfoxus, я готовий розглянути, але у вікні додавання коментарів під основним повідомленням написано: "Уникайте відповіді на запитання в коментарях". Я думаю, що моя відповідь на буквальне поставлене запитання. Але, можливо, мені не вистачає вашого кута?
dave_k_smith

2
Я думав, що якщо це буде коментар, деякі посилання залишатимуться разом під коментарями, тоді як пояснення залишатимуться відповіддю. Але важлива ваша думка. Мені добре підходить ваш процес мислення, і це може залишитися відповіддю.
zedfoxus

3
Це має бути прийнятою відповіддю. Можливо, @dave_k_smith, ти хотів би насправді розширити свою відповідь інформацією про пост на суперкористувачі?
AkiraAiren

1
Цікавий і загальний, ніж моя "орієнтована на github" відповідь. Прихильний.
VonC

4

Найшвидший спосіб - це переключити гілку за замовчуванням з ведучої на іншу, і ви можете видалити головну гілку з веб-інтерфейсу .

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