2

我创建了测试 android 应用程序。在应用程序中,我使用 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();
4

1 回答 1

0

您可能想尝试在 call() 之前添加 setNoCheckout(true)。结帐时出现错误。然后,您可以使用单独的命令签出。

对于您的问题,可能没有设置分支。以 yourdir/.git/.../branches/ 为例,或者克隆后,尝试找到当前分支。也许它没有定义。yourdir/.git/HEAD 文件也很有趣。

于 2012-04-13T13:57:03.657 回答