我有很多Git分支.如何删除已合并的分支?是否有一种简单的方法可以删除它们而不是逐个删除它们?
我的情况是这样......在同一个仓库工作的人从他的本地和远程仓库中删除了一个分支......
大多数在Stack Overflow或其他网站上询问此类问题的人都会git branch -a在其底部的远程跟踪分支列表中显示分支问题:
* master
develop
feature_blah
remotes/origin/master
remotes/origin/develop
remotes/origin/feature_blah
remotes/origin/random_branch_I_want_deleted
Run Code Online (Sandbox Code Playgroud)
但是,在我的情况下,不应该在那里的分支是本地的:
* master
develop
feature_blah
random_branch_I_want_deleted
remotes/origin/master
remotes/origin/develop
remotes/origin/feature_blah
Run Code Online (Sandbox Code Playgroud)
当我执行以下任何操作时,它不会在本地删除:
$ git prune
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
$ git remote prune origin
$ git fetch --prune
Run Code Online (Sandbox Code Playgroud)
更有用的信息:当我检查git remote show origin它是如何看起来:
* remote origin
Fetch URL: utilities:homeconnections_ui.git
Push URL: utilities:homeconnections_ui.git
HEAD branch: master
Remote branches:
master tracked
develop tracked
feature_blah tracked
other123 tracked
other444 tracked
other999 tracked
Local branches configured for 'git pull':
develop merges with remote …Run Code Online (Sandbox Code Playgroud) 我遵循一个开发过程,为每个新功能或故事卡创建一个新的本地分支.完成后,我将分支合并为master,然后推送.
由于懒惰或健忘的结合,随着时间推移会发生的事情是,我最终得到了大量的本地分支,其中一些(例如尖峰)可能没有被合并.
我知道如何列出我所有的本地分支,我知道如何删除一个分支,但我想知道是否有一个git命令允许我删除所有我的本地分支?
以下是该git branch --merged命令的输出.
user@machine:~/projects/application[master]$ git branch --merged
STORY-123-Short-Description
STORY-456-Another-Description
STORY-789-Blah-Blah
* master
Run Code Online (Sandbox Code Playgroud)
所有删除列出的分支的尝试grep -v \*(根据下面的答案)都会导致错误:
error: branch 'STORY-123-Short-Description' not found.
error: branch 'STORY-456-Another-Description' not found.
error: branch 'STORY-789-Blah-Blah' not found.
Run Code Online (Sandbox Code Playgroud)
我正在使用:
git 1.7.4.1
ubuntu 10.04
GNU bash,版本4.1.5(1) -
发布GNU grep 2.5.4
我不小心修剪了一些远程分支,我真的不知道这是什么后果(我点击了Git Extensions中的"修剪远程分支"按钮,认为它会删除一个远程分支).
官方文档说"git-prune - 修剪对象数据库中所有无法访问的对象".我真的不明白这意味着什么.我猜这可能已经删除了合并的分支,但我不太确定.
我正在学习如何在Visual Studio中使用Git.我最近做了一个pull请求,其中在合并后删除了功能分支.功能分支仍显示在Visual Studio中的本地和远程分支中.我知道如何右键单击并删除分支,这是一种解决方法,因为团队中的其他人可能会在我知道它的分支上完成拉取请求.如果他们之后删除了分支,我不知道他们这样做了.
如何使用Git上的内容刷新Visual Studio分支?
我希望点击检查差异的按钮,链接或右键单击功能,如果发现有任何问题,"此分支不再存在,您是否要将其从Visual Studio中删除?".
我正在使用Visual Studio 2015 Enterprise
这可能是另一个问题,但它在这里非常适合.我只是注意到,如果我创建一个分支(比如在一个VM中并查看与另一个VM相同的repo),Visual Studio就没有git fetch更新分支列表的选项.顶部的刷新按钮似乎没有做任何事情.一旦我git fetch在bash中运行,visual studio就有了新的分支.我希望刷新能够解决这个问题.
当我使用gitlab时,对于某些功能,我创建新分支并对其进行处理,在提交、推送、合并之后,我从 gitlab 中删除我处理过的分支,然后单击SyncVS Code git 命令中的命令进行同步。但是我创建的所有分支以及其中许多已合并和删除的分支仍然存在于 VS Code 分支列表中,如何将 VS Code 分支列表与 git 和 gitlab 或 github 同步。如果有帮助的话我也在Git LensVS Code 中使用