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

4
每当我输入命令git branch -a以查看我本地和远程的所有分支时,总是会看到已经合并且关闭的旧分支。如何清除这些在我的本地git或github中不存在的分支?
3个回答

12
如果运行git branch -a会显示它们,那么它们是存在于本地的。这就是git branch列出的:存在于本地的内容。
你的Git分支属于你自己。它们不属于其他任何Git。
你的Git的远程跟踪名称(例如origin/master)也属于你自己,但是在连接到origin上的另一个Git并从中获取新内容时,你的Git将自动将其与其看到的其他Git同步。也就是说,如果另一个Git有一个名为feature/tall的分支,当你将Git连接到它们的Git并从中获取新内容时,你的Git将创建或更新你的origin/feature/tall
你还可以让你的Git自动删除远程跟踪名称。默认情况下,如果你的Git上周看到了它们的feature/tall,因此创建了你的origin/feature/tall,昨天他们删除了他们的feature/tall,你的Git将继续保留你的origin/feature/tall。要告诉你的Git:如果他们已经删除了它们的内容,请删除我的复制它们的远程跟踪名称,你有几个选项:
  • 运行git fetch origin --prune:这将调用origin上的Git,获取他们的分支列表,并确定要删除哪些origin/*名称,同时更新origin
  • 运行git remote prune:这将调用所有远程Git。如果你只有一个名为origin的远程,那么这会产生相同的效果。
  • fetch.prune配置为true

    git config fetch.prune true
    

    现在所有的 git fetch 操作将会像你使用了 --prune 选项一样。

你的分支是你自己创建和删除的。如果你不再需要分支 feature/short,就将其删除。


2
看起来它们仍然存在于您的本地存储库的远程跟踪部分(如果名称看起来像refs/remote/origin/branchname)。您可以使用git fetch --prune命令删除所有不再存在于远程存储库中的远程跟踪分支。该命令不会触及您的任何本地分支。"最初的回答"

0

git branch -d <YOUR-BRANCH-NAME>

如果你已经将一个分支的所有修改合并

或者

git branch -D <YOUR-BRANCH-NAME>

如果你想要删除的分支中有未合并的修改。

-D 作为强制删除操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接