Git 删除分支而不克隆?

Git delete branch without cloning?

有没有办法在不进行克隆或任何其他类型的本地副本的情况下从 Git 存储库中删除分支?

基本上,我正在为发布管道开发仪表板,不希望仪表板服务器上有任何工作项目的代码只是为了删除已部署的功能分支。

以防万一,我们使用 Atlassian Stash 而不是 Github。

我想做类似的事情:

git branch -D ssh://git@repository.com/team/project/feature/deleteme

如果 Stash 网络界面没有选项,您将不得不编写一个自定义 git 客户端,可能使用 jgit 来执行此操作。

您可以使用 Stash REST API (branch utils)。您需要向 URL 发送经过身份验证的(有关详细信息,请参阅 link)DELETE-请求:

/rest/branch-utils/1.0/projects/{projectKey}/repos/{repositorySlug}/branches

...带有指定要删除的分支的参数 name 和(可选?)dryRun,根据名称判断,它实际上并不应用更改,但会导致响应就像更改已应用一样。

几乎任何能够进行身份验证的东西都可以发出请求。例如,curl 可以做到这一点。

简单,来自任何 git 存储库

git push u://r/l +:refs/heads/branchname

如果您碰巧没有手头的,只需在任何地方制作一个垃圾桶,例如git init deleteme.

一些不得不向不可靠的开发人员提供推送访问权限的仓库管理员关闭了推送删除访问权限,因此一些仓库会拒绝该命令,但默认情况下它是启用的。