如何在Jgit中实现"git checkout <sha1-hash> ."

How to implement "git checkout <sha1-hash> ." in Jgit

我正在尝试实现一个只有一个分支(不允许其他分支)的 git 存储库。所以我尝试做如下事情:

     git rm -r -f *
     git checkout <hash> .

     *** make changes you want ***
    
     git stage -A
     git commit -m <commit message>

通过控制台使用它对我来说完全没问题。 但是,当使用 jgit 时,我正在努力实现“git checkout ”。部分,因为它不允许我做这样的事情:

git.checkout().setName("$previousCommitId .").call()

结果消息如下: org.eclipse.jgit.api.errors.InvalidRefNameException: Branch name 1ff5273b10cdc61386ffe391560b7836da82a412 . is not allowed

多亏了 Rüdiger Herrman,我才更接近解决方案。他已经很接近了。由于 setName 和 setAllPaths 是互斥的,因此达到目标的唯一选择似乎是:

    git.checkout().setStartPoint(commitHash).setAllPaths(true).call();