随风飞世 发表于 2018-9-16 11:05:16

git学习之jgit

DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  Repository repository = new RepositoryBuilder().setGitDir(new File("D:\\source-code\\temp-1\\.git")).build();
  try (RevWalk walk = new RevWalk(repository)) {
  Ref head = repository.findRef("HEAD");
  walk.markStart(walk.parseCommit(head.getObjectId())); // 从HEAD开始遍历,
  for (RevCommit commit : walk) {
  RevTree tree = commit.getTree();
  TreeWalk treeWalk = new TreeWalk(repository, repository.newObjectReader());
  PathFilter f = PathFilter.create("pom.xml");
  treeWalk.setFilter(f);
  treeWalk.reset(tree);
  treeWalk.setRecursive(false);
  while (treeWalk.next()) {
  PersonIdent authoIdent = commit.getAuthorIdent();
  System.out.println("提交人: " + authoIdent.getName() + " ");
  System.out.println("提交SHA1: " + commit.getId().name());
  System.out.println("提交信息: " + commit.getShortMessage());
  System.out.println("提交时间: " + format.format(authoIdent.getWhen()));
  ObjectId objectId = treeWalk.getObjectId(0);
  ObjectLoader loader = repository.open(objectId);
  loader.copyTo(System.out);            //提取blob对象的内容
  }
  }
  }

页: [1]
查看完整版本: git学习之jgit