Коротко;
- Как я могу удалить несколько удаленных объединенных пультов?
Больше фона;
У меня есть репозиторий git с десятками пультов, которые были объединены в мастер. Я могу удалить эти пульты по одному, используя:
git push --delete origin myBranch-1234
Однако для всех пультов это медленный и утомительный процесс. Итак, я пробую эту команду:
git branch -r --merged | grep origin | grep -v master | xargs git push origin --delete
git branch -r --mergedперечисляет все объединенные пульты.
grep originсообщает команде, что нужно включить origin.
grep -v masterсообщает команде исключить master.
xargs git push origin --deleteуказывает команде удалить список пультов.
Все вместе, я ожидаю, что это соберет все объединенные пульты и удалит их.
Когда я запускаю указанную выше команду, я получаю следующее для каждого объединенного пульта ДУ:
error: unable to delete 'origin/myBranch-1234': remote ref does not exist
error: unable to delete 'origin/myBranch-1235': remote ref does not exist
error: unable to delete 'origin/myBranch-1236': remote ref does not exist
error: unable to delete 'origin/myBranch-1237': remote ref does not exist
... etc
Однако эти пульты существуют, и я могу проверить каждый из них. Многие сайты и люди рекомендуют мне бегать, git fetch --pruneчтобы очистить недостающие ссылки. Это ничего не делает, потому что все эти пульты существуют.
Итак, я прошу вас, дорогая биржа стека;
- Почему я могу удалить один пульт, а не много?
- Моя команда верна?
Думаю, мне не хватает чего-то маленького. Каждый раз, когда я исследую это, кажется, что я делаю это правильно, но получаю указанные выше ошибки.
--prune? На мой взгляд, это довольно вводит в заблуждение