如何在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();
我正在尝试实现一个只有一个分支(不允许其他分支)的 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();