在一次运行中删除多个分支

Anu*_*hra 3 git bitbucket git-branch

我可以看到文章在 Bitbucket 中删除分支,但这只是一次删除一个分支。我想在一次运行中删除多个分支,这可以通过命令行还是手动进行?

Rom*_*eri 5

步骤一、本地分行

就像 Flimzy 建议的那样,branch -d接受一系列 refs。

此外,如果需要,可以考虑使用第一个命令来生成分支列表,并将结果传递给分支命令。例如,如果您决定删除合并的分支

git branch -d `git branch --merged`
Run Code Online (Sandbox Code Playgroud)

或者,其他假设情况,如果您想摆脱所有提交错误的分支(引入了错误)

git branch -d `git branch --contains <bad-commit>`
Run Code Online (Sandbox Code Playgroud)

在第二个例子中,git 可能会抱怨一些分支没有完全合并,即提交只存在于它们上,无法从任何其他分支访问。这是 git 原则中避免意外丢失工作的一种保护措施。

要覆盖的情况下这种机制,你知道这些分支没有完全合并,但你仍然要删除它们,另一种方法是使用-D标志代替-d,但要注意,如果你使用的conjonction与列表就像我们上面看到的,或者确保在将列表提供给删除命令之前输出并检查列表。


第二步,远程分支

并回答弗拉德的有用评论,是的,此操作仅影响本地存储库,因此要将其反映在远程(我将在这里假设,origin但要根据您的情况进行调整),您必须

git push -d origin <branchList>
Run Code Online (Sandbox Code Playgroud)

第三步,远程跟踪分支

最后,由于您的本地存储库此时仍保留与我们刚刚删除的远程分支相对应的过时远程跟踪分支,请以

git remote prune origin
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用Linux/Unix grep 命令能力。

grep "*keyword*"将列出相似的名称。

将 grep 命令与git branch.

要删除分支,我们使用git branch -d branch_name

所以,最终命令如下所示:

在此输入图像描述