我正在尝试使用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
答案 0 :(得分:3)
似乎文档和FileRepository
(同时?)属于内部包,不鼓励访问。
您可以使用InitCommand
创建像这样的存储库
Git.init().setDirectory( directory ).call()
默认情况下,这会创建一个非裸存储库,其中directory
是工作目录,directory/.git
包含Git对象数据库。
为了完整起见:如果使用InitCommand
调用setBare( true )
,将创建一个裸存储库,其对象数据库位于directory
。