我创建了测试Android应用程序。在app我调用克隆操作使用jgit,我得到错误:
Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing unknown e69de29
org.eclipse.jgit.storage.file.WindowCursor.open(WindowCursor.java:125)
org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:228)
org.eclipse.jgit.dircache.DirCacheCheckout.checkoutEntry(DirCacheCheckout.java:926)
org.eclipse.jgit.dircache.DirCacheCheckout.doCheckout(DirCacheCheckout.java:444)
org.eclipse.jgit.dircache.DirCacheCheckout.checkout(DirCacheCheckout.java:378)
org.eclipse.jgit.api.CloneCommand.checkout(CloneCommand.java:224)
org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:121)
但是在agit中,这个操作没有错误地执行。我学习了agit的代码,但不明白为什么会这样。
告诉我,我做错了什么?
我的代码:
Git.cloneRepository()
.setBare(false)
.setDirectory(dir)
.setCloneAllBranches(false)
.setRemote("origin")
.setURI(uri)
.call();
答案 0 :(得分:0)
您可能想尝试在call()之前添加setNoCheckout(true)。结账时出错。然后,您可以使用单独的命令签出。
对于您的问题,可能没有设置分支。例如,查看yourdir / .git /.../ branches /,或者在克隆之后,尝试查找当前分支。也许它没有定义。文件yourdir / .git / HEAD也很有趣。