删除Bitbucket中的分支


133

我在我们的一个存储库中创建了很多分支。这些分支将在被测试之前被测试。现在,我在列表中看到了很多,而我们将不再使用它。如何将那些分支直接删除到Bitbucket?

Answers:


224

如果分支仅是本地分支,则可以在分支已合并的情况下使用-d,例如

git branch -d branch-name

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

如果分支位于上游回购(在Bitbucket上),则可以通过以下方式删除远程引用

git push origin :branch-name

另外,如果您在Bitbucket网站上,则可以通过转到网站上“ 提交 ” 下的“ 功能分支”选项卡来删除已推送的分支。在那里您将找到省略号图标。单击该按钮,然后选择“ 删除分支”。只要确保您要放弃所有更改即可!

在此处输入图片说明


2
如果我运行'git branch -r',我会注意到BB并未从服务器删除该分支。它不再显示在GUI中,而是显示在git服务器上。
泽西豆

37

要从Bitbucket删除分支,

  1. 转到概述(您的存储库> 左侧栏中的分支
  2. 单击分支数(应显示分支列表)
  3. 单击您要删除的分支
  4. 单击右上角的3个点(“合并”按钮旁边)。
  5. 如果您有权限,则可以选择“删除分支”。

1
“概述”在哪里?如果您是说Source,那么我在...下看不到“删除分支”选项
niico

7
步骤1应该是“转到您的仓库,然后单击左侧边栏中的“分支”。
Noumenon


8

Bitbucket中,转到左侧菜单中的分支。

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

7

我可以删除大部分分支,但是其中一个看起来像这样,因此无法删除:

在此处输入图片说明

原来有人不加限制地从Branch permissions下面Settings出发Allow deleting this branch。希望这可以帮助某人。

在此处输入图片说明

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

在此处输入图片说明


在哪里可以找到“设置”?我必须删除主分支或其中的所有文件。我该怎么做?

3

步骤1:登录Bitbucket

步骤2:在“存储库”列表中选择您的存储库。 在此处输入图片说明

步骤3:在左侧菜单中选择分支。 在此处输入图片说明

步骤4:分支上的光标点单击三个点(...)选择删除(请参见波纹管图像) 在此处输入图片说明


2

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


2

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

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

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

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


1

尝试此命令,它将清除已合并到该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

0

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

  • 更改/签出其他本地分支
  • 删除不需要的本地分支(即v0.0.1 ...)
  • 删除不需要的远程分支(即origin / v0.0.1 ...)-如果没有阻止删除分支,并且它们不是MAIN BRANCH,则此步骤将删除BitBucket中的分支。

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.indexOf('/')) return; 
 fetch(`https://bitbucket.org/!api/2.0/repositories/<your_organization_path>/refs/branches/${item.innerText}`, {headers: {"x-csrftoken": csrf}, credentials: "same-origin", method: 'DELETE'}).then(() => console.log(`${item.innerText} DELETED!`)) }) })

跑步前

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

这个怎么运作

首先,我们需要一个页面源中带有CSRF令牌的页面,因此我选择:

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

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

谨防

在回购设置中删除之前,请记住防止敏感分支。

它不会删除主分支。

附加信息

您必须先登录。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.