删除Bitbucket中的分支

时间:2013-03-01 04:46:54

标签: git bitbucket git-branch

我在我们的一个存储库中创建了许多分支。这些分支在被提取给主人之前进行测试。现在我在列表中看到很多它们,我们永远不会再使用它。如何将这些分支直接删除到Bitbucket?

12 个答案:

答案 0 :(得分:181)

如果分支只是本地分支,如果分支已合并,则可以使用 -d ,例如

git branch -d branch-name

如果分支包含您从未计划合并的代码,请改用 -D

如果分支位于上游仓库(在Bitbucket上),您可以通过

删除远程引用
git push origin :branch-name

此外,如果您使用的是Bitbucket网站,则可以通过访问网站上提交下的功能分支标签来删除您推送的分支机构。在那里你会找到一个省略号图标。单击该按钮,然后选择删除分支。确保你想要删除所有的更改!

enter image description here

答案 1 :(得分:19)

从Bitbucket删除分支,

  1. 转到概述
  2. 点击分支数量(应该显示分支列表)
  3. 单击要删除的分支
  4. 点击右上角的3个点(除了合并按钮)。
  5. 可以选择"删除分支"如果你有权利。

答案 2 :(得分:13)

除了@Marcus给出的答案,您现在还可以通过以下方式删除远程分支:

git push [remote-name] --delete [branch-name] 

答案 3 :(得分:5)

我可以删除大多数分支,但其中一个看起来像这样,我无法删除它:

enter image description here

原来有人在Branch permissions下设置了Settings,并从那里取消选中Allow deleting this branch。希望这可以帮助别人。

enter image description here

更新:设置位于评论中的问题中。输入您不想编辑的存储库以获取菜单。您可能需要管理员权限才能更改此权限。

enter image description here

答案 4 :(得分:5)

Bitbucket 中的

转到左侧菜单中的分支。

  1. 选择您要删除的分支。
  2. 转到操作栏,点击三个点(...)并选择删除。

答案 5 :(得分:3)

第1步:登录 Bitbucket

第2步:在“存储库”列表中选择您的存储库。 enter image description here

第3步:在左侧菜单中选择分支。 enter image description here

Step4:分支上的光标点单击三个点(...)选择Delete(在波纹管图像中查看) enter image description here

答案 6 :(得分:2)

如果您正在使用pycharm IDE进行开发,并且已经添加了Git。您可以直接从pycharm中删除远程分支。 从工具栏VCS-> Git->分支->选择分支->并删除。 它将从远程git服务器中删除它。

答案 7 :(得分:1)

当我的仓库中的分支数量超过数百时,我已经编写了这个小脚本。我不知道其他方法(使用CLI),所以我决定使用selenium使其自动化。它只是打开Bitbucket网站,转到“分支”,向下滚动到页面的末尾,然后单击每个分支选项菜单->单击“删除”按钮->单击“是”。可以对其进行调整,以保留最后的N个(100个-默认值)分支,并跳过具有特定名称的分支(master,develop-默认值,可以更多)。  如果这适合您,您可以尝试这种方式。

https://github.com/globad/remove-old-branches

您需要做的就是克隆存储库,下载正确版本的Chrome-webdriver,在存储库中输入一些常量(如URL)并运行脚本。

该代码非常简单易懂。如有任何疑问,请写评论/创建问题。

答案 8 :(得分:0)

Android Studio 中,IDE右下角的选项:

  • 更改/结帐其他本地分支
  • 删除不需要的本地分支(即v0.0.1 ...)
  • 删除不需要的远程分支(即origin / v0.0.1 ...) - 如果不阻止删除分支并且它们不是主要分支。

答案 9 :(得分:0)

如果您喜欢有趣,那么您可以直接进入分支的列表页面(例如合并),然后在javascript控制台中运行:

document.querySelectorAll('tr td div a:first-child').forEach(function(item) { fetch('https://bitbucket.org/snippets/new?owner=<yourprofilenick>', {'credentials': 'same-origin'}).then((response) => {return response.text()}).then(function(string) { return /'csrfmiddlewaretoken' value='(.*)'/g.exec(string)[1] }).then(function(csrf) { if (item.innerText === 'Create') return; 
 fetch(`https://bitbucket.org/!api/2.0/repositories/<your_organization_path>/refs/branches/${item.dataset.branchName}`, {headers: {"x-csrftoken": csrf}, credentials: "same-origin", method: 'DELETE'}).then(() => console.log(`${item.innerText} DELETED!`)) }) })

跑步前

  • 用您的BitBucket昵称替换<yourprofilenick>
  • <your_organization_path>替换为您的组织路径

如何运作

首先,我们需要页面源中包含CSRF令牌的页面,因此我选择:

https://bitbucket.org/snippets/new?owner=<yourprofilenick>

然后对于每个分支(在分支列表中),它获取CSRF令牌并删除该分支。

提防

记得在回购设置中删除之前阻止敏感分支。

它会删除主分支。

附加信息

您必须登录。

它只删除该页面上可见的分支(因此要删除其他分支,您必须转到下一页)。

答案 10 :(得分:0)

尝试使用此命令,它将清除已合并到develop分支的所有分支。

for i in `git branch -r --merged origin/develop| grep origin | grep -v '>' \
   | grep -v master | grep -v develop | sed -E "s|^ *origin/||g"`; \
do \
   git push origin $i --delete; \
done

答案 11 :(得分:0)

git push <repository> -d <branch>

要获取repository,请在命令行中输入git remote -v