Используя git branch --all
показывает все удаленные и локальные филиалы. Когда Git обновляет этот список?
На тянуть / толкать? И как мне обновить его с помощью Git Bash ?
git
github
branch
remote-branch
BendEg
источник
источник
git ls-remote
может быть интересно здесь.Ответы:
Чтобы обновить локальный список удаленных филиалов:
Показать все локальные и удаленные ветви, о которых (локальный) Git знает
источник
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,
Они все должны быть там. Щелкните правой кнопкой мыши и «оформить заказ».
источник