日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java索引ref_java – 如何使用jgit库将git HEAD指向特定的ref?

發布時間:2023/12/9 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java索引ref_java – 如何使用jgit库将git HEAD指向特定的ref? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我想以編程方式更新HEAD而不對非裸倉庫執行checkout或rebase.

我希望工作樹和索引在操作后保持不變.

編輯

我需要更新HEAD的符號目標,而不是HEAD當前目標的提交ID.這更像是一個結賬,而不是其他任何東西,除了我不能使用org.eclipse.jgit.api.CheckoutCommand因為它需要我更新路徑,但我不想觸摸工作樹. org.eclipse.jgit.api.CreateBranchCommand也不合適,因為它需要一個特定的起點,因為我正在創建一個孤兒分支,所以它不存在.

解決方法:

例:

Result updateHead(

Repository repo, String newHead, boolean force, boolean detach

) throws IOException {

RefUpdate refUpdate = repo.getRefDatabase().newUpdate(Constants.HEAD, detach);

refUpdate.setForceUpdate(force);

return refUpdate.link(newHead);

}

答案隱藏在jgit源代碼中的大約5個位置.

jgit v2.0.0.201206130900-r中的三個api命令為您更新HEAD:clone,checkout和rebase.如果適用,請使用其中之一.

這些都不適用:checkout和rebase會改變工作樹和索引.

希望發布這個問題和答案將節省其他人我花在它上面的時間.

標簽:jgit,java,git

來源: https://codeday.me/bug/20190826/1727080.html

總結

以上是生活随笔為你收集整理的java索引ref_java – 如何使用jgit库将git HEAD指向特定的ref?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。