Подтвердить что ты не робот

Как обновить ветки (локальные/удаленные) в Visual Studio при использовании Git?

Резюме

Я учусь, как использовать Git с Visual Studio. Недавно я сделал запрос на удаление, где ветвь функции была удалена после слияния. Ветвь функций все еще отображается в моих локальных и удаленных ветках в Visual Studio. Я знаю, как щелкнуть правой кнопкой мыши и удалить ветку, это обходной путь, так как другие члены команды могут выполнить запрос на извлечение ветки, который у меня есть, без моего ведома. Если бы они потом удалили ветку, я бы не знал, что они это сделали.

Вопрос

Как вы обновляете ветки Visual Studio тем, что есть в Git?

Что я ожидаю

Я ожидаю, что кнопка, ссылка или функция щелчка правой кнопкой мыши, которая при щелчке проверяет наличие различий, если они обнаружены, спрашивает: "Эта ветвь больше не существует, хотите ли вы удалить ее из Visual Studio?".

Технические характеристики

Я использую Visual Studio 2015 Enterprise (все еще кажется симптомом VS 2019)

Дополнительный пример

Это может быть другой вопрос, но он так хорошо подходит здесь. Я только что заметил, что если я создаю ветвь (скажем, в одной виртуальной машине и смотрю одно и то же хранилище с другой), Visual Studio не имеет опции git fetch для обновления списка ветвей. Кнопка обновления вверху, похоже, ничего не делает. Как только я запускаю git fetch в bash, в Visual Studio появилась новая ветка. Я ожидаю, что обновление позаботится об этом.

4b9b3361

Ответ 1

Если ветвь удалена на стороне сервера, попробуйте в командной строке (поскольку такой "button", похоже, не существует непосредственно в Visual Studio):

git remote prune origin --dry-run

(удалите параметр --dry-run, чтобы фактически удалить локальные ветки)

Удалите также соответствующую локальную ветвь git branch -d aBranch.

Затем перезапустите Visual Studio и проверьте, обновляет ли он список ветвей. (комментарии упоминают, что вам не нужно перезапускать/обновлять VS)

Примечание: я упомянутый ранее в 2013 году конфигурация

git config remote.origin.prune true

Это автоматизирует этот процесс и, кажется, поддерживаемый Visual Studio, как упомянутый ниже от yaniv.

Ответ 2

Согласно этому сообщению в блоге, вы можете установить свойство git через

git config remote.origin.prune true

который удалит удаленные ветки из вашего списка при выполнении выборки.

Ответ 3

От: https://intovsts.net/2017/01/17/refresh-git-remote-branches-in-visual-studio/

Вы можете настроить git на автоматическое выполнение этой операции при извлечении/извлечении с помощью этой команды:

git config remote.origin.prune true –global

Обновить:

Visual Studio 2017 версии 15.7.3 и выше, вы можете сделать это с помощью пользовательского интерфейса:

  1. В Team Explorer нажмите "Домой", затем "Настройка": enter image description here

  2. Выберите Глобальные настройки

  3. Измените "Удаление удаленных веток во время выборки" на "Истина"

Ответ 4

VS 2017, похоже, поддерживает конфигурацию в Team Explorer:

Продвинутый пользователь настройки Git > Глобальные настройки Удаление удаленных ветвей во время выборки: Unset, True или False

Ответ 5

Вы должны сначала отменить публикацию ветки, тогда другие заметят, что ветвь не опубликована (пытаясь вытащить ветку, они получат сообщение об ошибке), удаление локальной ветки фактически является отдельным процессом и должно быть сделано для того, чтобы в любом случае избавиться от ветки.

Ответ 6

Я не мог сделать это в пользовательском интерфейсе. Мне пришлось зайти в терминал и набрать: git remote update (чтобы обновить список ветвей, чтобы я мог использовать git checkout в пользовательском интерфейсе)

Моя папка была уже открыта, и я уже добавил пульт через. пользовательский интерфейс.

Вы также можете использовать --prune в конце, который в соответствии с этим удаляет устаревшие ссылки. Однако использование origin просто дало мне ошибку, сказав, fatal: No such remote or remote group: origin.