Какие команды git использует GitHub при удалении ветки из интерфейса сайта? - PullRequest
1 голос
/ 05 апреля 2019

Я использовал веб-сайт GitHub, чтобы удалить ветку из списка ветвей (красный значок корзины на изображении ниже).

enter image description here

Когда я получаю последнюю версию оригинального мастера на моем локальном компьютере и затем выполняю git branch -r, я все еще вижу удаленную ветку в удаленном режиме. Но когда я запускаю git ls-remote --heads origin, ветви и ее головы там нет.

Что именно делает GitHub?

Ответы [ 2 ]

3 голосов
/ 05 апреля 2019

git fetch не удаляет ссылки удаленного отслеживания по умолчанию.Запустите git fetch --prune, затем git branch -r снова.Они должны быть удалены.

Перед извлечением удалите все ссылки на удаленное отслеживание, которые больше не существуют на пульте.

3 голосов
/ 05 апреля 2019

На самом деле это два отдельных вопроса, но я постараюсь ответить на оба. Во-первых, когда вы удаляете ветку в интерфейсе GitHub (или используя GitHub API), она делает эквивалент git branch -D. Тем не менее, он не использует эту конкретную команду для этого; большинство хостинг-провайдеров используют libgit2 для взаимодействия с репо.

Причина, по которой вы видите удаленную ветвь на вашем компьютере, заключается в том, что команда git fetch не удаляет удаленные ветви отслеживания, если вы не используете --prune. Если вы используете git fetch --prune origin, то удаленные ветви будут удалены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...