git branch -a列出合并/删除的分支

时间:2019-02-14 17:11:54

标签: git github

每当我编写命令git branch -a以查看本地和远程所有分支时,都会以某种方式看到已合并并关闭的旧分支。如何摆脱本地git或github中不再存在的这些分支?

3 个答案:

答案 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用作强制删除