Git синхронизирует все удаленные филиалы с локальными

#windows #git #batch-file

#Windows #git #пакетный файл

Вопрос:

У меня есть скрипт для обновления всех моих локальных репозиториев. Я использую компьютер с Windows, и я использую скрипт .bat для автоматического обновления всех моих локальных репозиториев.

Моя структура папок

 xx/update.bat

xx/project1/ ..
xx/project2/ ..
etc..
etc..
  

мой скрипт bat теперь:

  @echo off
 for /D %%G in ("*") do (echo %%G)  amp;amp; (cd %%G) amp;amp; (git fetch --all) amp;amp; (git pull --all) amp;amp; (cd ..)
  

но этот скрипт обновит только отслеживаемые ветви, если новая ветвь добавлена в remote, она не будет автоматически добавлена в мой локальный репозиторий.

Мне нужна помощь, чтобы улучшить этот скрипт для выполнения «git branch —track» для всех ветвей во всем репозитории.

Ответ №1:

Git поддерживает локальный кэш того, какие филиалы существуют на удаленном сервере. Этот кэш имеет тенденцию устаревать, поскольку он не обновляется автоматически.

Чтобы обновить этот локальный кэш, используйте эту команду:

 git remote update origin --prune
  

В git cheatsheets вы можете увидеть эту команду, описанную как «Обновить локальный список удаленных филиалов«.