Git:无法永久删除远程分支

19

我知道这个问题已经被问过了,我看到了很多相关的回答,但好像没有一个能解决我的问题。

以下是我的工作流程:创建一个新分支并在上面进行工作。有时我会用多台电脑,所以我将它推送到远程仓库,这样我就可以在其他地方获取它。

git branch new_branch
git checkout new_branch
git push -u origin new_branch

在多台计算机上完成部分工作,然后合并到主分支并推送。

git checkout master
git merge new_branch

现在我想删除这个分支。

git branch -d new_branch (this works fine and when I run 'git branch' it only shows local master
git branch -r -d origin/new_branch (now on this computer when i run 'git branch -r' it's gone like it should be)

但是在我删除远程分支之后,无论我在哪台电脑上使用 'git pull' 或 'git fetch' 命令,它都会重新拉取那个新分支。我尝试了所有我看到的修剪命令,但仍然继续出现。

2个回答

41

你需要执行这个操作来删除 远程 分支。

git push origin --delete new_branch

这个命令将会从远程仓库中删除名为 new_branch 的分支。(new_branch 是远程仓库上的一个本地分支。换句话说,如果你可以进入远程仓库并使其成为本地仓库,那么它将有一个名为 new_branch 的本地分支,而这正是你要用上面的命令删除的分支。)

当您执行此操作时,

git branch -r -d origin/new_branch

所发生的只是你在本地仓库中删除远程分支指针。 这个命令不会改变远程仓库中的任何内容。

在删除远程分支(使用上面的第一个命令)之后,git remote prune origin 将开始在其他计算机上工作,删除它们的远程分支 origin/new_branch


1
为了删除远程分支: 选项1:使用git命令行(分支名称不应包含refs/remotes/origin/的后缀)
git push origin --delete <yourBranchName>

Option 2: 前往 Github -> 分支 -> 搜索您的分支 -> 单击垃圾桶(删除此分支)(您可以通过单击 恢复 在 Github gui 上撤消更改并恢复您的分支)
另一个要点:如果您收到错误消息“remote: error: Cannot delete a protected branch”,这意味着您的分支受到保护。 为了获得删除受保护分支的权限,请转到 Github 存储库 -> 设置 -> 分支 然后删除限制规则,确保默认分支是安全的(主分支)。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接