今天我在github上注册,并使用此处描述的技术将现有文件系统转换为git库:http://crashingdaily.wordpress.com/2009/09/02/initing-a-new-remote-git-repository-with-existing-files/。最重要的是(我认为),它涉及到这一行命令:
今晚,我尝试使用JGit添加一个文件、提交它并将其推送。以下是代码片段,直到出现错误:
这基本上是从JGit教程中直接摘取的。顺便说一下,它在最后引用的那行代码抛出了异常并声明:
git --bare init
。然后我按照github.com的设置教程进行操作并完成了设置。现有的文件系统位于Dropbox中,因此我在使用文件系统(现在是git库)的其他两台机器上执行了相同的设置。今晚,我尝试使用JGit添加一个文件、提交它并将其推送。以下是代码片段,直到出现错误:
FileRepositoryBuilder builder = new FileRepositoryBuilder();
Repository repository = builder.setGitDir(new File("path/to/my/repo"))
.readEnvironment() // scan environment GIT_* variables
.findGitDir() // scan up the file system tree
.build();
Git git = new Git(repository);
AddCommand add = git.add();
try{
add.addFilepattern("PlayState.as").call();`
这基本上是从JGit教程中直接摘取的。顺便说一下,它在最后引用的那行代码抛出了异常并声明:
org.eclipse.jgit.errors.NoWorkTreeException: Bare Repository has neither a working tree, nor an index
at org.eclipse.jgit.lib.Repository.getIndexFile(Repository.java:838)
at org.eclipse.jgit.lib.Repository.lockDirCache(Repository.java:886)
at org.eclipse.jgit.api.AddCommand.call(AddCommand.java:136)
at flipa.FLIPAGame.writeToFlixel(FLIPAGame.java:77)
at flipa.FLIPAGame.main(FLIPAGame.java:58)
现在,我不是说要否认宣称版本控制的重要性,事实上我并不是版本控制的最好朋友。我知道一个裸仓库指的是只有Git而没有其他文件,但是现在它似乎已经有文件了。我已经通过终端使用git手动添加、提交和推送到Github。所以我不能立即看出为什么它甚至不识别这个仓库。
有人愿意接手吗?
编辑-为了澄清,如果有人可以提出另一种解决方案,删除这个仓库并不是什么大问题。我想要一个Git仓库来使用我的Dropbox文件系统,并能够通过Java提交到Github。