使用 JGit 创建新的本地存储库失败 "with Bare Repository has neither a working tree..."

Creating a new local repository with JGit fails "with Bare Repository has neither a working tree..."

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

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

如果我创建或引用了一个裸存储库,然后尝试向其中添加文件,这将是我期望的消息。但是,这个错误出现在创建存储库的行上,我非常清楚地创建了一个非裸存储库。 create方法的文档是:"Create a new Git repository. Repository with working tree is created using this method."

已验证目录创建成功

这是怎么回事?

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

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

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

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

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

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