繁体   English   中英

如何列出Git存储库的所有文件夹(项目)

[英]How to List all folders (projects) of a Git Repository

通过使用食谱示例,我可以在离线Git存储库中的HEAD下获取所有文件夹(项目)

String url = "C:/Users/kishore/git/JavaRepos/.git";

File gitDir = new File(url);
Repository repository = new FileRepository(gitDir);

Ref head = repository.getRef("HEAD");

RevWalk walk = new RevWalk(repository);

RevCommit commit = walk.parseCommit(head.getObjectId());
RevTree tree = commit.getTree();
System.out.println("Having tree: " + tree);

TreeWalk treeWalk = new TreeWalk(repository);
treeWalk.addTree(tree);
treeWalk.setRecursive(false);
while(treeWalk.next()) {
    System.out.println("Folder Path: " + treeWalk.getPathString());
    System.out.println("Folder Name: " + treeWalk.getNameString());
    System.out.println("Folder depth: " + treeWalk.getDepth());
    System.out.println("Folder Tree Count: " + treeWalk.getTreeCount());
}

这段代码列出了位于我的机器上的给定Git存储库URL的所有文件夹,但是

Ref head = repository.getRef("HEAD");

对于任何在线Git存储库URL返回null的行,例如https://github.com/github/testrepo.git

在第二种情况下我所缺少的。

提前致谢!!!

我认为认证是造成这种情况的原因。 您的代码无处提及用户名和密码,在访问远程git分支时,您需要提供凭据。 检查可用资源是否提供任何身份验证方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM