有没有办法在不执行克隆或任何其他类型的本地副本的情况下从Git存储库中删除分支?
基本上我正在使用仪表板上的发布管道,并且不希望仪表板服务器上的任何工作项目代码只是为了删除已部署的功能分支。
如果重要,我们使用Atlassian Stash而不是Github。
我希望做类似的事情:
git branch -D ssh://git@repository.com/team/project/feature/deleteme
答案 0 :(得分:4)
很简单,来自任何git repo
git push u://r/l +:refs/heads/branchname
如果您碰巧没有一个方便的话,只需在任何地方制作一个垃圾桶即可。 git init deleteme
。
一些不得不对不可靠的开发人员进行推送访问的repo管理员已经关闭了逐个删除访问权限,因此一些repos将拒绝该命令,但默认情况下已启用。
答案 1 :(得分:2)
您可以使用Stash REST API (branch utils)。您需要发送经过身份验证的详细信息(请参阅相关链接)DELETE
- 请求以下网址:
/rest/branch-utils/1.0/projects/{projectKey}/repos/{repositorySlug}/branches
...使用参数name
指定要删除的分支和(可选?)dryRun
,根据名称判断,实际上不会应用更改但会导致响应为如果更改已应用。
可以通过几乎任何能够进行身份验证的请求发出请求。例如,curl
可以做到这一点。
答案 2 :(得分:0)
如果Stash Web界面没有选项,您必须编写一个自定义git客户端(可能使用jgit)来执行此操作。