Как я могу сбросить все ветки в git
Как мне сбросить все локальные ветки, чтобы один раз был как ветки в удаленном репозитории?
У меня есть 42 ветки в моем локальном хранилище, но у меня есть только 21 ветка в моем удаленном хранилище. Мне не нужны другие ветви, мне просто нужны 21 ветка (с одинаковым именем в локальной и удаленной сетях).
я знаю
git fetch origin
git reset --hard origin/master
но я хочу, чтобы все 21 ветвь вместе переустанавливали в исходное состояние, а все остальные ветки удалялись, если они не в исходном.
1 ответ
Вы можете использовать сценарии оболочки, если вы работаете в Unix.
Это сначала удалит все ваши локальные ветви, а затем создаст все ветви из источника.
# make sure we are currently on no branch, so every branch can be deleted
git checkout --detach master
# delete all local branches
git branch | grep -v "HEAD detached" | xargs git branch -D
# re-create all branches from origin
while read b; do git branch ${b#origin/} $b; done < <(git branch -r | grep 'origin/')
# check out the new master
git checkout master