Короче говоря,
- Как удалить удаленные несколько объединенных пультов?
Больше фона;
У меня есть репозиторий git с десятками пультов, которые были объединены в master. Я могу удалить эти пульты по одному, используя:
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
указывает команде включить источник. grep -v 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
для очистки отсутствующих ссылок. Это ничего не значит, потому что все эти пульты существуют.
Итак, я спрашиваю вас, дорогая замена стека;
- Почему я могу удалить один пульт, но не так много?
- Правильно ли моя команда?
Я думаю, что мне не хватает чего-то маленького. Каждый раз, когда я исследую это, кажется, что я делаю это правильно, но я получаю вышеуказанные ошибки.