Use JGit. Need to know the difference in the branches. How to run a command JGit API: git diff --name-status ..origin

有帮助吗?

解决方案

You can use the DiffCommand by creating AbstractTreeIterator instaces for the branches and then use the DiffCommand to return you a list of differences between the two branches:

// the diff works on TreeIterators, we prepare two for the two branches
AbstractTreeIterator oldTreeParser = prepareTreeParser(repository, "refs/heads/oldbranch");
AbstractTreeIterator newTreeParser = prepareTreeParser(repository, "refs/heads/master");

// then the procelain diff-command returns a list of diff entries
List<DiffEntry> diff = new Git(repository).diff().setOldTree(oldTreeParser).setNewTree(newTreeParser).call();
for(DiffEntry entry : diff) {
    System.out.println("Entry: " + entry);
}

The full example including creating the AbstractTreeIterator can now be found as part of my jgit-cookbook

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top