Git: 我删除了本地分支,但我仍然可以切换到它。如何永久摆脱它?

Git: I deleted local branch but I am still able to switch to it. How to get rid of it permanently?

我尝试按照 中的说明进行操作,显然我的本地分支已被删除。

为了确定,我尝试切换到已删除的分支,并预计会收到错误消息,指出本地分支不再存在或类似内容。但是,我毫无问题地切换了应该删除的分支:

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 已经存在。请删除本地分支......”。所以我想删除它。

Git 允许您创建映射到上游分支的本地分支,只要存在上游分支即可。

由于您只删除了本地分支,但 origin 仍然有它的副本,git 允许您快速检出上游分支作为新的本地分支。

本地删除不会远程删除。

如果您想完全删除该分支,您必须在本地删除它以及在您的远程上删除它。

要做到这一点,除了 git branch -D 命令之外,您还可以使用 git push origin -d MKTINT-45693 在远程删除它。

所以为了彻底删除分支:

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

另请注意,如果团队中的任何其他开发人员在 他们的 克隆中仍然将该分支作为本地分支,他们可能会将其推回上游。除了确保人们不会推动他们恰好躺在那里的分支之外,您几乎无能为力。

该分店在 remote.That 仍然可用,这就是您仍然可以结帐到该分店的原因。尝试 运行 下面的命令将其永久删除。

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