Git 删除远程分支有以下几种方法
服务端UI工具
客户端UI工具
命令行
命令行删除是本文重点阐述的一种方式。
命令通过引用规范从远程服务器上删除
git push origin :dev
讯享网
因为引用规范(的格式)是 :,所以上述命令把 留空,意味着把远程版本库的 dev 分支定义为空值,也就是删除它。
引用规范
现在想要添加一个远程仓库:
git remote add origin https://github.com/schacon/simplegit-progit
运行上述命令会在你仓库中的 .git/config 文件中添加一个小节, 并在其中指定远程版本库的名称(origin)、URL 和一个用于获取操作的 引用规范(refspec):讯享网[remote "origin"] url = https://github.com/schacon/simplegit-progit fetch = +refs/heads/*:refs/remotes/origin/*引用规范的格式由一个可选的 + 号和紧随其后的 : 组成, 其中 是一个模式(pattern),代表远程版本库中的引用; 是本地跟踪的远程引用的位置。 + 号告诉 Git 即使在不能快进的情况下也要(强制)更新引用。
默认情况下,引用规范由 git remote add origin 命令自动生成, Git 获取服务器中 refs/heads/ 下面的所有引用,并将它写入到本地的 refs/remotes/origin/ 中。 所以,如果服务器上有一个 master 分支,你可以在本地通过下面任意一种方式来访问该分支上的提交记录:
git log origin/master git log remotes/origin/master git log refs/remotes/origin/master上面的三个命令作用相同,因为 Git 会把它们都扩展成 refs/remotes/origin/master。
更多引用规范请参考:GIT 内部原理-引用规范
git push 语法
或者你可以使用更新的语法(自 Git v1.7.0 以后可用)
讯享网git push origin --delete dev
使用 JGit 删除
private static void deleteRemoteBranch(CredentialsProvider credentialsProvider, Git git) throws GitAPIException {
String deleteBranch = "dev"; RefSpec refSpec = new RefSpec() .setSource(null) .setDestination("refs/heads/" + deleteBranch); Iterable<PushResult> results = git.push() .setCredentialsProvider(credentialsProvider) .setRemote("origin") .setRefSpecs(refSpec) .call(); // 处理推送结果 for (PushResult result : results) {
for (RemoteRefUpdate update : result.getRemoteUpdates()) {
System.out.println("Status: " + update.getStatus()); } } }
以上代码摘自 【JGit】分支管理实践
其原理是使用了通过引用规范从远程服务器上删除,即git push origin :dev。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/22358.html