Когда git обновляет список удаленных веток?

Использование git branch --all показывает все удаленные и локальные ветки. Когда git обновляет этот список? На pull/push? И как обновить его с помощью git bash?

Спасибо вам большое!

Ответ 1

Чтобы показать все локальные и удаленные ветки, которые (локальные) git знает о

git branch -a

Чтобы обновить локальный список удаленных ветвей:

git remote update origin --prune

Ответ 2

Я считаю, что если вы запустите git branch --all из bash, что список удаленных и локальных ветвей, которые вы видите, будет отражать то, что ваш локальный Git "знает" в момент запуска команды. Поскольку ваш Git всегда обновляется в отношении локальных веток в вашей системе, список локальных веток всегда будет точным. Однако для удаленных веток это не обязательно. Ваш локальный Git знает только о удаленных ветвях, которые он видел в последней выборке (или вытягивании). Поэтому возможно, что вы можете запустить git branch --all и не увидеть новую удаленную ветвь, появившуюся после последнего приезда или вытаскивания.

Чтобы обновить список локальных и удаленных веток, вы можете выполнить git fetch перед запуском git branch --all.

Для получения дополнительной информации ветки "remote", которые появляются при запуске git branch --all, вообще не удалены, они на самом деле локальны. Например, предположим, что на удаленном компьютере есть ветвь с именем feature, которую вы потянули хотя бы один раз в локальный Git. Вы увидите origin/feature, указанный в качестве ветки, когда вы запустите git branch --all. Но эта ветвь на самом деле является локальной ветвью Git. Когда вы делаете git fetch origin, эта ветка отслеживания обновляется с любыми новыми изменениями с удаленного. Вот почему ваше локальное состояние может быть устарело, потому что могут быть новые удаленные ветки, или ваши ветки отслеживания могут стать устаревшими.

Ответ 3

ОП не запрашивал очистки для всех пультов, а для всех веток по умолчанию.

Так что следует использовать git fetch --prune.

Установка git config remote.origin.prune true делает --prune автоматическим, в этом случае просто git fetch также удалит устаревшие удаленные ветки из локальной копии. Смотрите также Автоматическое удаление с помощью git fetch или pull.

Обратите внимание, что это не очищает локальные ветки, которые больше не отслеживают удаленную ветку. См. fooobar.com/questions/13753/... для этого.

Ответ 4

Используйте git fetch чтобы получить все последние созданные ветки.

Ответ 5

Если вы используете Eclipse и хотите видеть новые ветки от апстрима;

В перспективе Git щелкните правой кнопкой мыши по репозиторию git и выберите "Получить из Upstream". Это приносит новые удаленные ветки.

Ответ 6

Если вы используете Eclipse,

  • Откройте "Git Репозитории"
  • Найдите свой репозиторий.
  • Откройте "Ветки", затем "Удаленное отслеживание".

Git

Они все должны быть там. Щелкните правой кнопкой мыши и выберите "Оформить заказ".