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

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

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

7 ответов

Решение

Показать все локальные и удаленные ветки, о которых знает (локальный) git

git branch -a

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

git remote update origin --prune

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

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

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

Обратите внимание, что это не очищает локальные ветви, которые больше не отслеживают удаленную ветку. См. /questions/4365362/kak-udalit-lokalnyie-vetvi-otslezhivaniya-kotoryie-bolshe-ne-suschestvuyut-na-udalennom/4365380#4365380 для этого.

Я считаю, что если вы бежите 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 --all --prune --tags --prune-tags --progress

и добавьте это в файл команд запуска (.zshrc или .bashrc), чтобы я мог быстро набиратьgitfчтобы вызвать эту команду:

      alias gitf='git fetch --all --prune --tags --prune-tags --progress'

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

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

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

  1. Открыть "Git Repositories"
  2. Найдите свой репозиторий.
  3. Откройте "Филиалы", затем "Удаленное отслеживание".

Гит

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

Другие вопросы по тегам