Как удалить локальную ветку после ее слияния через запрос на слияние? git-поток, битбакет, исходное дерево

Моя среда в локальной:

  • Git подключается к Bitbucket
  • Исходное дерево с git-flow

Шаги

  1. Я создаю feature x в Sourcetree, затем добавляю код.
  2. Я делаю commit включая опцию create a pull request и push изменения в feature x ветке в remote.
  3. В pull request я выбираю вариант для Close {branch} after the pull request is merged.
  4. В Bitbucket группа участников утверждает pull request, а затем объединяет ее с ветвью develop.
  5. Я pull вношу новые изменения в свою develop локальную ветку.

ПРИМЕЧАНИЕ Важно просмотреть код с помощью pull request, прежде чем объединять его с develop, поэтому возникает вопрос:

Есть ли способ автоматически удалить ветку feature x в моей локальной сети после создания pull в develop?

*Я пробовал с fetch, но это не работает.


person e-israel    schedule 23.01.2020    source источник
comment
Какую проблему вы хотите решить? git branch вывод слишком переполнен устаревшими ветками? размер репо? что-то другое? Ветки (именно слитые) практически ничего не весят в git.   -  person RomainValeri    schedule 23.01.2020
comment
Иногда у нас есть проекты с более чем 100 старыми ветками, поэтому я хочу максимально организовать свою локальную среду, поэтому я ищу лучший способ сделать это автоматически, понятно?   -  person e-israel    schedule 24.01.2020
comment
Но если у самого проекта много веток, кто-то клонирует его, а затем работает над ним, не будет столько локальных веток, а только те, которые он активно проверял локально. И даже тогда это всего лишь вопрос очистки вывода списка веток (почему вы имели в виду организованный, если я правильно понял)   -  person RomainValeri    schedule 24.01.2020
comment
Да, вы правы, я вообще хочу удалить автоматически старые branch-features в своем локальном, через 6 месяцев их может вырасти 100-120. Я ценю вашу помощь.   -  person e-israel    schedule 24.01.2020


Ответы (1)


Один простой, неавтоматический способ справиться с этим — периодически запускать команду очистки ветки в локальном репо, например

# to be executed with your "main" stable branch checked out
git branch -d $(git branch --merged)

Он удалит все уже объединенные локальные ветки (т.е. те, которые НЕ имеют «еще не объединенных» коммитов). Таким образом, все эти ветки, которые были объединены через запросы на включение, будут удалены, но не те несколько веток, которые имеют недавние (не проверенные/не объединенные) коммиты.

Примечание. если ваша политика заключается в подавлении коммитов по запросу на вытягивание, это не будет подходящим решением, поскольку в ваших локальных ветках все еще есть исходные коммиты (до подавления), поэтому они не будут удалены. рассматривается как объединенный и не будет удален.

person RomainValeri    schedule 23.01.2020
comment
Спасибо, я попробую эту команду, возможно, добавление ее в задание cron может быть полезно. - person e-israel; 24.01.2020