我在我们的一个存储库中创建了许多分支。这些分支在被拉到主服务器之前用于测试。现在我在清单上看到了很多,我们再也不会使用它们了。如何将这些分支直接删除到 Bitbucket?
14 回答
要从 Bitbucket 中删除分支,
- 转到概述(您的存储库 >左侧边栏中的分支)
- 单击分支数(应显示分支列表)
- 单击要删除的分支
- 在右上角,单击 3 个点(在合并按钮旁边)。
- 如果您有权限,可以选择“删除分支”。
除了@Marcus 给出的答案之外,您现在还可以通过以下方式删除远程分支:
git push [remote-name] --delete [branch-name]
在Bitbucket中转到左侧菜单中的分支。
- 选择您要删除的分支。
- 转到操作列,单击三个点 (...) 并选择删除。
当我的仓库中的分支数量超过数百个时,我编写了这个小脚本。我不知道其他方法(使用 CLI),所以我决定使用 selenium 自动化它。它只是打开 Bitbucket 网站,转到分支,将页面向下滚动到最后,然后单击每个分支选项菜单 -> 单击删除按钮 -> 单击是。可以调整它以保留最后 N 个(100 - 默认)分支并跳过具有特定名称的分支(master、develop - 默认,可能更多)。如果这适合您,您可以尝试这种方式。
https://github.com/globad/remove-old-branches
您只需要克隆存储库,下载正确版本的 Chrome-webdriver,输入一些常量,如存储库的 URL 并运行脚本。
代码简单易懂。如果您有任何问题,请写评论/创建问题。
如果您正在使用 pycharm IDE 进行开发,并且您已经添加了 Git。您可以直接从 pycharm 中删除远程分支。 从工具栏 VCS-->Git-->Branches-->Select branch--> 和 Delete。它将从远程 git 服务器中删除它。
试试这个命令,它将清除所有已合并到分支的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
在Android Studio中,IDE 右上角的选项:
- 更改/结帐其他本地分支
- 删除不需要的本地分支(即 v0.0.1...)
- 删除不需要的远程分支(即 origin/v0.0.1...)——如果不阻止删除分支并且它们不是MAIN BRANCH ,则此步骤将删除 BitBucket 中的分支。
在 bitbucket Web 控制台中,当有活动的拉取请求时,删除分支被禁用。
git push <repository> -d <branch>
要获取repository
, 输入git remote -v
命令行
如果你喜欢有趣,那么你可以去你的分支列表页面(例如合并),然后在 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 令牌并删除该分支。
谨防
请记住在 repo 设置中删除之前防止敏感分支。
它不会删除主分支。
附加信息
您必须登录。
它只删除该页面上可见的分支(因此要删除其余分支,您必须转到下一页)。