2016-08-21 5 views
2

У нас много ветвей, которые неактивны (самый новый - 7 месяцев, самый старый - два года назад).
Я хотел бы удалить все эти ветки навалом с пульта дистанционного управления, если PR не открыт для них.Как удалить все устаревшие ветки из Github?

Должен ли я использовать API Github? Должен ли я использовать git, используя фрагменты, подобные тем, которые приведены в this StackOverflow question?
Есть ли какая-то функциональность Github, с которой я не знаком, может помочь организовать наш репозиторий?

+1

Я хотел бы иметь эту функцию в Гитубе. Когда вы переделаете репо с более чем 100 ветвями, это просто беспорядок. – Kangur

ответ

2

Вы, безусловно, можете достичь этого, используя API GitHub, но для этого вам потребуется немного поиграть.

Прежде всего, воспользуйтесь list pull requests API, чтобы получить список открытых запросов на растяжение. Каждый элемент в этом списке содержит запись ["head"]["ref"], которая будет именем ветки.

Теперь, используя get all references API, перечислите все ссылки в вашем репозитории. Обратите внимание, что синтаксис ветвей в API данных Git несколько отличается от того, который был возвращен из API запроса pull (например, refs/heads/topic против topic), поэтому вам придется компенсировать это. API ссылок также возвращает теги, если вы не ищете только подпространство refs/heads/, как указано в документах, поэтому имейте это в виду.

После того, как у вас есть эти два списка ссылок refs, достаточно просто разработать, какие ветви не имеют открытых запросов на pull (не забудьте указать master или любую другую ветку, которую вы хотите сохранить!).

На этом этапе вы можете использовать delete reference API, чтобы удалить эти референтные ссылки из репозитория.

-3

Вы можете удалить ветки после запроса на слияние или закрытие тяги. Он также может быть удален из страницы филиалов в GITHub.

Pls. найти информацию здесь: https://help.github.com/articles/deleting-unused-branches/

+0

То, что я прошу, является массовым удалением всех ветвей. –

+0

@the_drow - Вы не указали явно, что вам требуется предложение Bulk Delete, и поэтому я предложил это. Для этого не ожидайте -1. –

+0

Anways - здесь есть поток, который также имеет опции для массового удаления. http://stackoverflow.com/questions/10555136/delete-multiple-remote-branches-in-git –

Смежные вопросы