Ответы:
Чтобы обновить локальный список удаленных филиалов:
git remote update origin --prune
Показать все локальные и удаленные ветви, о которых (локальный) Git знает
git branch -a
git remote update origin --prune
это то, что я искал,
git remote update
, и принятым ответом, который использует git fetch
, смотрите здесь
git fetch
не удалил мой локальный кеш удаленных веток. Только --prune
смог все это почистить.
git config remote.origin.prune true
git remote prune origin
имеет тот же эффект, и вы печатаете меньше.
Я полагаю, что если вы запустите git branch --all
из Bash, то список удаленных и локальных веток, которые вы увидите, будет отражать то, о чем «знает» ваш локальный Git во время выполнения команды. Поскольку ваш Git всегда актуален в отношении локальных филиалов в вашей системе, список локальных филиалов всегда будет точным.
Однако для удаленных филиалов это не должно иметь место. Ваш локальный Git знает только об удаленных ветвях, которые он видел при последней загрузке (или извлечении). Поэтому возможно, что вы могли бы запустить git branch --all
и не увидеть новую удаленную ветку, которая появилась после того, как вы в последний раз загрузили или извлекли.
Чтобы убедиться, что ваш локальный и удаленный список ветвей обновлен, вы можете сделать git fetch
перед запуском git branch --all
.
Для получения дополнительной информации, «удаленные» ветви, которые появляются при запуске git branch --all
, на самом деле совсем не удалены; они на самом деле местные. Например, предположим, что на пульте дистанционного управления есть ветвь, feature
которую вы хотя бы раз вставили в локальный Git. origin/feature
При запуске вы увидите список как ветку git branch --all
. Но эта ветка на самом деле является локальной веткой Git. Когда вы это сделаете git fetch origin
, эта ветвь отслеживания будет обновляться с любыми новыми изменениями с пульта. Вот почему ваше местное состояние может устареть, поскольку могут появиться новые удаленные ветви или устаревшие ветви отслеживания.
git fetch
сделал это.
git fetch
не работает для меня, нужно добавить --prune
. Кстати, я не downvoter;)
git fetch
не удаляет удаленные ветки Вероятно, поэтому некоторые люди и проголосовали против
OP не запрашивал очистки для всех пультов, а для всех веток по умолчанию.
Так git fetch --prune
это то, что следует использовать.
Настройка git config remote.origin.prune true
производится --prune
автоматически. В этом случае просто git fetch
также удалит устаревшие удаленные ветви из локальной копии. Смотрите также Автоматическое удаление с помощью Git fetch или pull .
Обратите внимание, что это не очищает локальные ветви, которые больше не отслеживают удаленную ветку. Для этого смотрите Как удалить локальные ветви отслеживания, которые больше не существуют на удаленном компьютере .
git fetch -p
Используйте git fetch
для получения всех последних созданных веток.
git fetch
ничего не изменилось для меня с git 2.17.1. Какую версию и опции вы использовали?
--prune
или git config remote.NAME.prune true
для этого, чтобы решить вопрос ОП
Если вы используете Eclipse и хотите видеть новые ветки от апстрима;
В перспективе Git щелкните правой кнопкой мыши Git-репозиторий и выберите «Получить из Upstream». Это приносит новые удаленные ветви.
Если вы используете Eclipse,
Они все должны быть там. Щелкните правой кнопкой мыши и «оформить заказ».
git ls-remote
может быть интересно здесь.