Git: я удалил локальную ветку, но все еще могу переключиться на нее. Как от этого навсегда избавиться? - PullRequest
1 голос
/ 01 апреля 2020

Я пытался следовать инструкциям в этой теме , и, очевидно, моя локальная ветвь была удалена.

Чтобы убедиться, что я попытался переключиться на удаленную ветку и ожидал, что появится сообщение об ошибке, что местный филиал больше не существует или что-то подобное. Однако я без проблем переключил предположительно удаленную ветвь:

PS C:\Users\node> git branch -D MKTINT-45693
Deleted branch MKTINT-45693 (was c405ae9a99).
PS C:\Users\node> git checkout MKTINT-45693
Updating files: 100% (668/668), done.
Switched to a new branch 'MKTINT-45693'
Branch 'MKTINT-45693' set up to track remote branch 'MKTINT-45693' from 'origin'.

Кроме того, ветвь MKTINT-45693 все еще видна в моем проекте Jira (как гиперссылка на репозиторий BitBucket) - я ожидал, что после удаление локальной ветки также будет удалено из проекта Jira.

Как тогда удалить локальную ветку навсегда?

Причина, по которой я хочу удалить ее, заключается в том, что я внес некоторые изменения в файл и передан в производственную ветку, но позже мне пришлось внести дополнительные изменения в тот же файл и повторно зафиксировать. Но когда я пытаюсь повторить, я получаю сообщение об ошибке, в котором говорится, что «ветвь MKTINT-45693 уже существует. Пожалуйста, удалите локальную ветку ..». Поэтому я пытаюсь удалить его.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

Филиал по-прежнему доступен в удаленном режиме. Поэтому вы все еще можете оформить заказ в эту ветку. Попробуйте выполнить приведенную ниже команду, чтобы удалить ее навсегда.

git push origin :MKTINT-45693
git branch -D MKTINT-45693
0 голосов
/ 01 апреля 2020

Git позволяет вам создать локальную ветвь, сопоставленную с веткой восходящего потока, пока она существует в восходящем направлении.

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

Локальное удаление не удаляет ее удаленно.

Если вы хотите полностью избавиться от ветки, вам нужно удалите его локально, а также удалите его на вашем пульте.

Для этого в дополнение к этой команде git branch -D вы можете использовать git push origin -d MKTINT-45693 для удаления его на пульте.

Итак чтобы полностью удалить ветку:

git branch -D MKTINT-45693
git push origin -d MKTINT-45693

Также учтите, что если какой-либо другой разработчик в команде все еще имеет ветвь как локальную ветвь в их клоне , они могут 1021 * это обратно наверх по течению. Мало что можно сделать, чтобы предотвратить это, кроме того, чтобы убедиться, что люди не набросились на sh веток, которые они просто обвили.

...