当 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
在一个克隆的存储库中 灰尘.
让我们分解一下…
所以,在第 4 行, remotes/origin/HEAD -> origin/master
表示“默认”远程存储库是主分支。
而最后两行表示远程仓库中有两个分支,分别是 master
和 test-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 remote
超过 git branch
取决于您的偏好和用例。
删除远程 git 分支
这 -d
(或者 -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 分支,并且如果 HEAD 指向您的 master
或者 main
分支。