2015-11-01 370 views
2

我想刪除名爲test的遠程分支。運行此代碼時我沒有遇到任何錯誤,但遠程分支未被刪除。使用JGit刪除遠程Git分支

'ans'是包含分支標識的目的地。

當我使用完整分支時,此代碼適用於我。但我必須改變一些事情,因爲它不再工作。

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(); 

回答

1

假設'ans'是本地分支的完整分支名稱例如refs/heads/testbranchDelete()代碼看起來沒問題。

但是,被push到push命令的ref規範的目的地應該表示分支的名稱,因爲它在遠程端被引用。在這種情況下refs/heads/test

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

或在短

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