Удалить ветки в Bitbucket

136

Я создал множество веток в одном из наших репозиториев. Эти ветки предназначены для тестирования, прежде чем они будут переданы мастеру. Сейчас я вижу их много в списке, и мы никогда не будем использовать их снова. Как удалить эти ветки прямо в Bitbucket?

Екатерина
источник

Ответы:

226

Если ветки только локальные, вы можете использовать -d, если ветка была объединена, например

git branch -d branch-name

Если ветка содержит код, который вы никогда не планируете объединять, используйте вместо этого -D .

Если ветка находится в восходящем репо (на Bitbucket), вы можете удалить удаленную ссылку,

git push origin :branch-name

Кроме того, если вы находитесь на веб-сайте Bitbucket, вы можете удалить отправленные вами ветки, перейдя на вкладку « Ветви функций » в разделе « Коммиты» на сайте. Там вы найдете значок с многоточием. Щелкните по нему, затем выберите Удалить ветку . Только убедитесь, что вы хотите сбросить туда все изменения!

введите описание изображения здесь

Маркус
источник
2
Если я запустил git branch -r, я заметил, что BB не удаляет ветку с сервера. Он больше не отображается в графическом интерфейсе, но отображается на сервере git.
jersey bean
37

Для удаления ветки из Bitbucket,

  1. Перейдите в Обзор (Ваш репозиторий> ветки на левой боковой панели)
  2. Щелкните количество ветвей (это должно показать вам список веток)
  3. Нажмите на ветку, которую хотите удалить
  4. В правом верхнем углу нажмите на 3 точки (кроме кнопки «Объединить»).
  5. Есть опция «Удалить ветку», если у вас есть права.
Митал Притмани
источник
1
Где «обзор»? Если вы имеете в виду Источник, я не вижу опции «Удалить ветку» под ...
niico
7
Шаг 1 должен быть таким: «перейдите в свое репо и нажмите« ветки »на левой боковой панели».
Ноумен
19

В дополнение к ответу @Marcus теперь вы также можете удалить удаленную ветку с помощью:

git push [remote-name] --delete [branch-name] 
Ральф Рафаэль Фрикс
источник
8

в Bitbucket перейдите к веткам в левом меню.

  1. Выберите ветку, которую хотите удалить.
  2. Перейдите в столбец действий, нажмите на три точки (...) и выберите удалить.
Прашант Шарма
источник
7

Я мог удалить большую часть своих веток, но одна выглядела так, и я не мог ее удалить:

введите описание изображения здесь

Оказалось, что кто-то сидел Branch permissionsпод Settingsи оттуда без контроля Allow deleting this branch. Надеюсь, это кому-то поможет.

введите описание изображения здесь

Обновление : где находятся настройки из вопроса в комментарии. Войдите в репозиторий, который вы не хотите редактировать, чтобы получить меню. Вам могут потребоваться права администратора, чтобы изменить это.

введите описание изображения здесь

Ogglas
источник
Где найти "Настройки"? Мне нужно удалить основную ветку или все файлы в ней. Как мне это сделать?
3

Шаг 1. Войдите в Bitbucket

Шаг 2: Выберите ваш репозиторий в списке репозиториев. введите описание изображения здесь

Шаг 3: Выберите ветви в левом меню. введите описание изображения здесь

Шаг 4: указатель курсора на ветке щелкните три точки (...) Выберите Удалить (см. Изображение внизу) введите описание изображения здесь

Нанхе Кумар
источник
2

Если вы используете среду разработки pycharm для разработки и уже добавили с ней Git. вы можете напрямую удалить удаленную ветку из pycharm. На панели инструментов VCS -> Git -> Ветви -> Выбрать ветку -> и Удалить . Он удалит его с удаленного сервера git.

Джиоти Амаге
источник
2

Я написал этот небольшой скрипт, когда количество веток в моем репо перевалило за несколько сотен. Я не знал о других методах (с помощью CLI), поэтому решил автоматизировать их с помощью селена. Он просто открывает веб-сайт Bitbucket, переходит в «Филиалы», прокручивает страницу до конца и нажимает на каждое меню параметров ветки -> нажимает кнопку «Удалить» -> нажимает «Да». Его можно настроить, чтобы сохранить последние N (100 - по умолчанию) веток и пропустить ветки с определенными именами (master, develop - по умолчанию, может быть больше). Если это вам подходит, вы можете попробовать то же самое.

https://github.com/globad/remove-old-branches

Все, что вам нужно, это клонировать репозиторий, загрузить соответствующую версию Chrome-webdriver, ввести несколько констант, таких как URL-адрес, в ваш репозиторий и запустить скрипт.

Код достаточно прост для понимания. Если у вас есть вопросы, напишите комментарии / создайте проблему.

Дэн
источник
1

Попробуйте эту команду, она очистит все ветки, которые были объединены с developветкой.

for i in `git branch -r --merged origin/develop| grep origin | grep -v '>' \
   | grep -v master | grep -v develop | sed -E "s|^ *origin/||g"`; \
do \
   git push origin $i --delete; \
done
Эхаб аль-Хакавати
источник
0

В Android Studio параметры в правом углу IDE:

  • Изменить / оформить заказ в другом местном филиале
  • Удалите ненужные локальные ветки (например, v0.0.1 ...)
  • Удаление нежелательных отдаленные ветви (то есть происхождение / v0.0.1 ...) - этот шаг будет удалять ветки в BitBucket если ветви не мешало быть удалены , и они не являются главной ветвью .
Тим Лонг
источник
0

Если вам нравится веселье, вы можете просто перейти на страницу со списком ваших веток (например, объединенных) и просто запустить в консоли javascript:

document.querySelectorAll('tr td div a:first-child').forEach(function(item) { fetch('https://bitbucket.org/snippets/new?owner=<yourprofilenick>', {'credentials': 'same-origin'}).then((response) => {return response.text()}).then(function(string) { return /'csrfmiddlewaretoken' value='(.*)'/g.exec(string)[1] }).then(function(csrf) { if (!~item.innerText.indexOf('/')) return; 
 fetch(`https://bitbucket.org/!api/2.0/repositories/<your_organization_path>/refs/branches/${item.innerText}`, {headers: {"x-csrftoken": csrf}, credentials: "same-origin", method: 'DELETE'}).then(() => console.log(`${item.innerText} DELETED!`)) }) })

ПЕРЕД ЗАПУСКОМ

  • замените <yourprofilenick>на свой ник BitBucket
  • заменить <your_organization_path>на путь вашей организации

КАК ЭТО УСТРОЕНО

Сначала нам нужна страница с токеном CSRF в источнике страницы, поэтому я выбираю:

https://bitbucket.org/snippets/new?owner=<yourprofilenick>

Затем для каждой ветки (в списке веток) он получает токен CSRF и удаляет эту ветку.

BEWARE

Не забывайте предотвращать чувствительные ветки перед удалением в настройках репо.

Это НЕ удалит основную ветку.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

Вы должны войти в систему.

Он удаляет только ветки, видимые на этой странице (поэтому, чтобы удалить остальные ветки, вам нужно перейти на следующую страницу).

Turkus
источник