使用JGit创建新的本地存储库失败“使用Bare存储库既没有工作树......”

时间:2015-03-21 08:18:02

标签: java jgit

我正在尝试使用JGit创建本地非裸存储库。我创建了目录,然后为该目录创建了一个Repository对象,然后我使用了repository.create()。我在这里的研究表明,这应该创建一个本地非裸存储库。但是,行repository.create()会抛出异常

org.eclipse.jgit.errors.NoWorkTreeException: Bare Repository has neither a working tree, nor an index. 

如果我创建或引用了裸存储库,那么这将是我期望的消息,然后尝试向其添加文件。但是,此错误出现在创建存储库的行上,而且我非常清楚地创建了一个非裸存储库。 create方法的文档是:“创建一个新的Git存储库。使用此方法创建具有工作树的存储库。”

我已验证目录已成功创建。

这里发生了什么?

File repositoryPath = "test.git";
Repository repository = new FileRepository(repositoryPath);
repository.create(false); // This line throws the error

1 个答案:

答案 0 :(得分:3)

似乎文档和FileRepository(同时?)属于内部包,不鼓励访问。

您可以使用InitCommand创建像这样的存储库

Git.init().setDirectory( directory ).call()

默认情况下,这会创建一个非裸存储库,其中directory是工作目录,directory/.git包含Git对象数据库。

为了完整起见:如果使用InitCommand调用setBare( true ),将创建一个裸存储库,其对象数据库位于directory