Использование git branch --all
показывает все удаленные и локальные ветки. Когда git обновляет этот список? На pull/push? И как обновить его с помощью git bash
?
Спасибо вам большое!
Использование git branch --all
показывает все удаленные и локальные ветки. Когда git обновляет этот список? На pull/push? И как обновить его с помощью git bash
?
Спасибо вам большое!
Чтобы показать все локальные и удаленные ветки, которые (локальные) git знает о
git branch -a
Чтобы обновить локальный список удаленных ветвей:
git remote update origin --prune
Я считаю, что если вы запустите 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
, эта ветка отслеживания обновляется с любыми новыми изменениями с удаленного. Вот почему ваше локальное состояние может быть устарело, потому что могут быть новые удаленные ветки, или ваши ветки отслеживания могут стать устаревшими.
ОП не запрашивал очистки для всех пультов, а для всех веток по умолчанию.
Так что следует использовать git fetch --prune
.
Установка git config remote.origin.prune true
делает --prune
автоматическим, в этом случае просто git fetch
также удалит устаревшие удаленные ветки из локальной копии. Смотрите также Автоматическое удаление с помощью git fetch или pull.
Обратите внимание, что это не очищает локальные ветки, которые больше не отслеживают удаленную ветку. См. fooobar.com/questions/13753/... для этого.
Используйте git fetch
чтобы получить все последние созданные ветки.
Если вы используете Eclipse и хотите видеть новые ветки от апстрима;
В перспективе Git щелкните правой кнопкой мыши по репозиторию git и выберите "Получить из Upstream". Это приносит новые удаленные ветки.
Если вы используете Eclipse,
Они все должны быть там. Щелкните правой кнопкой мыши и выберите "Оформить заказ".