每当我编写命令git branch -a
以查看本地和远程所有分支时,都会以某种方式看到已合并并关闭的旧分支。如何摆脱本地git或github中不再存在的这些分支?
答案 0 :(得分:2)
如果git branch -a
显示它们,则它们在本地存在。这就是git branch
列出的:在本地存在的事物。
您Git的分支机构是您。他们不是其他的Git的。
您的Git的远程跟踪名称 (例如origin/master
)也是您的 ,但是您的Git会自动将其与其他人看到的同步浏览origin
。也就是说,如果另一个Git有一个名为feature/tall
的分支,则当您将Git连接到他们的Git并让Git从他们那里获取新东西时,您的Git将创建或更新origin/feature/tall
。
您也可以自动将Git删除 远程跟踪名称。这不是默认值-如果您的Git上周看到了他们的feature/tall
,因此创建了您的origin/feature/tall
,并且昨天他们删除了他们的 feature/tall
,您的Git将会继续默认保留您的origin/feature/tall
。告诉您的Git:如果他们删除了他们的Git,请删除复制他们的我的远程跟踪名称,您有几种选择:
git fetch origin --prune
:这将在origin
处调用Git,获取其分支列表,并确定要删除的origin/*
名称,同时还要更新origin
。 git remote prune
:在您的遥控器的 all 处调用 all Gits。 (嗯,这是非常可配置的,但这是默认设置。)如果只有一个名为origin
的遥控器,则效果相同。将fetch.prune
配置为true
:
git config fetch.prune true
现在所有的git fetch
操作都将像您以前使用的--prune
一样。
您的分支是您的,可以随意创建和删除。如果您不再希望分支feature/short
,请将其删除。
答案 1 :(得分:1)
看起来它们仍然存在于本地存储库的远程跟踪部分中(如果名称看起来像refs/remote/origin/branchname
)。您可以使用命令git fetch --prune
删除远程存储库中不再存在的所有远程跟踪分支。该命令不会影响您的任何本地分支。
答案 2 :(得分:0)
git branch -d <YOUR-BRANCH-NAME>
如果您已合并分支中的所有更改
或
git branch -D <YOUR-BRANCH-NAME>
如果您要删除的分支上有未合并的更改。
-D
用作强制删除