Серед інформації, представленої git help fetch, є цей невеликий предмет:
-p, --prune
After fetching, remove any remote-tracking branches which no longer exist on the remote.
Отже, можливо, git fetch -pце те, що ви шукаєте?
EDIT: Добре, для тих, хто все ще обговорює цю відповідь через 3 роки після факту, ось трохи більше інформації про те, чому я представив цю відповідь ...
По-перше, ОП каже, що вони хочуть "видалити також ті локальні гілки, які були створені з тих віддалених гілок [які вже не є на віддалених]". Це однозначно неможливо в Росії git. Ось приклад.
Скажімо, у мене є репо на центральному сервері, і він має дві гілки, звані Aі B. Якщо я клонувати цей репозиторій в мою локальну систему, мій клон матиме місцеві реф (не фактичне філії поки) називаються origin/Aі origin/B. Тепер скажімо, що я роблю наступне:
git checkout -b A origin/A
git checkout -b Z origin/B
git checkout -b C <some hash>
Доречні факти тут полягають у тому, що я чомусь вирішив створити філію на своєму локальному репо, що має іншу назву, ніж її походження, а також у мене є місцева гілка, яка ще (ще) не існує в репопотоці походження.
Тепер припустимо, що я видаляю як Aі Bгілки на віддалений репозиторій і оновити свій локальний репозиторій ( git fetchв тій чи іншій формі), що викликає мої місцеві рефов origin/Aі origin/Bзникнути. Тепер, мій місцевий репо має три гілки ще, A, Z, і C. Жодна з них не має відповідного відділення на віддаленому репо. Дві з них були "створені з ... віддалених гілок", але навіть якщо я знаю, що раніше існувала гілка, яка називається Bпоходженням, я не можу знати, що Zстворено зB, оскільки він був перейменований у процесі, ймовірно, з поважної причини. Отже, без жодних зовнішніх процесів, що записують метадані походження гілки, або людини, яка знає історію, неможливо сказати, яка з трьох гілок, якщо така є, ОП орієнтована на видалення. Без зовнішньої інформації, gitяка автоматично не підтримується для вас, вона git fetch -pє приблизно такою ж близькою, і будь-який автоматичний метод для буквальної спроби того, що запитував ОП, ризикує або видалити занадто багато гілок, або пропустити частину, яка в іншому випадку ОП хочу видалити
Є й інші сценарії, наприклад, якщо я створю три окремі гілки origin/Aдля тестування трьох різних підходів до чогось, а потім origin/Aвідходить. Зараз у мене є три гілки, які, очевидно, не можуть відповідати всім іменам, але вони були створені origin/A, і тому буквальне тлумачення питання про ОП вимагало б усунення всіх трьох. Однак це може бути не бажаним, якщо ви навіть зможете знайти надійний спосіб їх узгодження ...