使用 JGit 删除远程 Git 分支

Removing remote Git branch using JGit

我正在尝试删除一个名为 test 的远程分支。 运行 此代码时我没有收到任何错误,但远程分支没有被删除。

'ans' 是包含分支 ID 的目的地。

当我使用完整分支时,这段代码对我有用。但我一定是改变了什么,因为它不再起作用了。

git.branchDelete().setBranchNames(ans).setForce(true).call();
RefSpec refSpec = new RefSpec()
        .setSource(null)
        .setDestination("refs/remotes/origin/test");
git.push().setRefSpecs(refSpec).setRemote("origin").call();

假设 'ans' 是本地分支的完整分支名称,例如refs/heads/test branchDelete() 代码看起来没问题。

但是传递给 push 命令的 ref spec 的目的地应该表示分支的名称,因为它在远程端被引用。在这种情况下 refs/heads/test

RefSpec refSpec = new RefSpec().setSource(null).setDestination("refs/heads/test");

或者简而言之

RefSpec refSpec = new RefSpec(":refs/heads/test");