Git: удалить локальные копии веток, которые не перечислены в `git branch` - PullRequest
0 голосов
/ 09 октября 2018

Я выполнял git fetch origin и другие подобные команды, которые выбирали все ветви моих коллег.Однако они мне не нужны.Мне нужны только master и мои ветки.Если я запускаю git branch, в нем перечислены ветви, которые я создал на моей машине.Для каждой из этих локальных веток существует эквивалентная ветвь вверх по течению.Как я могу удалить локальные копии всех других ветвей?

С этим связан вопрос, как я могу git fetch все мои ветви, не выбирая ветви моих коллег?

1 Ответ

0 голосов
/ 09 октября 2018

Удалите удаленные ветви отслеживания

Отдельно запустите git branch -rd origin/branchIDontWant для каждой ветви, или, если их много, вы можете удалить их все с помощью git for-each-ref --format "%(refname)" refs/remotes/origin | xargs -I% git update-ref -d "%".

Выбрать нужные ветви

Вы можете выбирать (или извлекать) только те ветви, которые хотите (git fetch origin branchIWant), двигаться вперед или настраивать git fetch, чтобы получать только нужные ветви с пульта.

Чтобы настроить git fetch на получение только тех веток, которые вам нужны, вам нужно обновить свои конфиги для удаленного пульта, с которого вы тянете.Более подробно это описано здесь: https://git -scm.com / book / en / v2 / Git-Internals-The-Refspec .Вы захотите удалить стандартную ссылку refspec fetch = +refs/heads/*:refs/remotes/origin/* из вашей .git/config для хранилища.Затем вы добавите refspec fetch = +refs/heads/branchIWant:refs/remotes/origin/branchIWant для каждой ветви, которую хотите получить (branchIWant).

Имейте в виду, я предполагаю, что вы используете только один пульт с именем origin, повторите описанные выше шаги для большего количества пультов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...