jGit-如何将所有文件添加到暂存区

我尝试了很多方法来使用jGit克隆存储库(它可以工作)。然后,我写的一些库存档,并尝试添加所有(一个git add *git add

-A或者类似的东西)..但它不工作。简单文件不会添加到暂存区域。

我的代码是这样的:

    FileRepositoryBuilder builder = new FileRepositoryBuilder();

Repository repository = builder.setGitDir(new File(folder))

.readEnvironment().findGitDir().setup().build();

CloneCommand clone = Git.cloneRepository();

clone.setBare(false).setCloneAllBranches(true);

clone.setDirectory(f).setURI("git@192.168.2.43:test.git");

try {

clone.call();

} catch (GitAPIException e) {

e.printStackTrace();

}

Files.write("testing it...", new File(folder + "/test2.txt"),

Charsets.UTF_8);

Git g = new Git(repository);

g.add().addFilepattern("*").call();

我究竟做错了什么?谢谢。


尝试使用addFilePattern(“。”)时发生异常:

Exception in thread "main" org.eclipse.jgit.errors.NoWorkTreeException: Bare Repository has neither a working tree, nor an index

at org.eclipse.jgit.lib.Repository.getIndexFile(Repository.java:850)

at org.eclipse.jgit.dircache.DirCache.lock(DirCache.java:264)

at org.eclipse.jgit.lib.Repository.lockDirCache(Repository.java:906)

at org.eclipse.jgit.api.AddCommand.call(AddCommand.java:138)

at net.ciphersec.git.GitTests.main(GitTests.java:110)

回答:

一个简单的方法来调试这是看的测试AddCommand在JGit回购:AddCommandTest.java

您将看到,为了添加所有文件,*从不使用模式“ ”,而是使用“ .”。

它用在名为…

testAddWholeRepo()(!)的测试函数中

git.add().addFilepattern(".").call();

例外:

Exception in thread "main" org.eclipse.jgit.errors.NoWorkTreeException: 

Bare Repository has neither a working tree, nor an index

非常明确:您需要在非裸仓库中添加文件。

查看测试方法testCloneRepository()以与您自己的克隆进行比较,并查看是否存在任何差异。

以上是 jGit-如何将所有文件添加到暂存区 的全部内容, 来源链接: utcz.com/qa/425115.html

回到顶部