如何删除Git远程分支

在处理本地分支时,在 Git 中删除分支很容易:

git branch -d <branch-name>

但是如果要删除远程分支就不一样了。

让我向您展示删除远程 Git 分支的步骤。

显示远程分支

查看 全部 远程 Git 存储库中的分支,您可以使用 -a 像这样标记:

$ git branch -a                    
* master
  test-lhb
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/test-lhb

这是运行的输出 git branch -a 在克隆的尘埃库中。

让我们分解一下…

  • remotes 表示远程服务器上的存储库(例如 GitLab、Gitea 或 GitHub)
  • origin 是您系统上远程存储库的别名
  • HEAD 如果您未明确指定分支,则为克隆的默认分支

所以,在第四行, remotes/origin/HEAD -> origin/master意味着“默认”远程存储库是主分支。

最后两行表示远程仓库中有两个分支,分别是 mastertest-lhb.

查看有关远程存储库信息的另一种方法是使用 git remote 命令如下。

$ git remote show origin
* remote origin
  Fetch URL: [email protected]:atheistd/linuxhandbook.git
  Push  URL: [email protected]:atheistd/linuxhandbook.git
  HEAD branch: master
  Remote branches:
    master   tracked
    test-lhb tracked
  Local branches configured for 'git pull':
    master   merges with remote master
    test-lhb merges with remote test-lhb
  Local refs configured for 'git push':
    master   pushes to master   (up to date)
    test-lhb pushes to test-lhb (up to date)

这为您提供了更详细的输出。 穿 git remotegit branch 这取决于您的偏好和用例。

从 git 中删除远程分支

-d (o -D 对于强制删除)该标志与 git branch 删除本地分支的命令。

但是,要从远程存储库中删除一个分支, git branch 该命令将不起作用。

要从 Git 中删除远程分支,请使用 git push 使用以下语法的命令:

$ git push origin --delete test-lhb
To github.com:atheistd/linuxhandbook.git
 - [deleted]         test-lhb

$ git branch -a
* master
  test-lhb
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

仔细看。 运行 git push 删除Git远程分支的命令并没有删除我们本地的分支。

删除 HEAD 分支

HEAD 分支是默认分支的别名。 在大多数存储库中,它被设置为 master 分支机构或其他 main 拉玛。

让我们尝试删除主要的远程分支……

$ git branch -a
* master
  test-lhb
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/test-lhb

$ git push origin --delete master
To github.com:atheistd/linuxhandbook.git
 ! [remote rejected] master (refusing to delete the current branch: refs/heads/master)
error: failed to push some refs to 'github.com:atheistd/linuxhandbook.git'

当我们试图删除 master 分支时,它给了我们一个错误,并没有删除 Git 的远程分支。

您现在知道如何从 Git 中删除远程分支,并且 Git 会阻止您删除指向您的 HEAD 的 HEAD master o main 拉玛。