0%

如何删除本地和远程的分支

一、QUESTION

如何在本地和远程正确删除remotes/origin/bugfix分支

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ git branch -d remotes/origin/bugfix
error: branch 'remotes/origin/bugfix' not found.

$ git branch -d origin/bugfix
error: branch 'origin/bugfix' not found.

$ git branch -rd origin/bugfix
Deleted remote branch origin/bugfix (was 2a14ef7).

$ git push
Everything up-to-date

$ git pull
From github.com:gituser/gitproject

* [new branch] bugfix -> origin/bugfix
Already up-to-date.

删除远程分支失败了

二、ANSWER

注意:在大多数情况下,指的是origin

1
2
git push -d <remote_name> <branchname>
git branch -d <branchname>

1、删除本地分支

要删除本地分支,请使用以下方法之一:

1
2
git branch -d <branch_name>
git branch -D <branch_name>

该-d选项是 的别名–delete,仅当分支已完全合并到其上游分支时才删除该分支。
该-D选项是 的别名–delete –force,“无论其合并状态如何”它都会删除分支。
从Git v2.3开始,git branch -d(delete) 开始使用-f(force) 标志。
如果您尝试删除当前选定的分支,会报错。

2、删除远程分支

这是在Git v1.5.0中添加的“删除远程分支或标签”命令

1
$ git push <remote_name> :<branch_name>

Git v1.7.0 开始,可以使用以下命令删除远程分支

1
$ git push <remote_name> --delete <branch_name>

比使用如Git v1.5.0更简洁

从Git v2.8.0开始,还可以使用git push with -d(–delete). 因此,安装的 Git 版本将决定您是否需要使用更简单或更难的语法。

三、Tips

如果你的本地分支没有与 master 合并并运行

1
git branch -d your_branch

那么您将出错

1
error: The branch 'your_branch' is not fully merged. If you are sure you want to delete it, run 'git branch -D your_branch'

建议使用 -d 而不是 -D 因为更安全。如果 -d 由于未合并提交而失败,那么您需要对其进行评估,如果确实可以删除,则使用 -D

其他具有删除远程分支的人应该运行如下命令,以便在本地删除远程中不再存在较早的分支

1
git remote prune <name>(例如git remote prune origin)

如果它没有与当前的 HEAD 合并,-d 会发出警告。如果你需要清楚,推荐使用这个命令

1
git branch -a --merged origin/master

这个命令会列出所有分支,包括本地和远程,已合并到 master 中的分支

四、相关问题

怎么删除Git本地和远程的分支
删除git分支