首页 > 解决方案 > java - 如何在没有中间提交的情况下查看两个提交之间的更改?

问题描述

我想找出使用​​java的两个提交之间的区别,有人可以帮助我吗?

标签: javajgit

解决方案


使用git24j,您可以:

Tree t1 = (Tree) Tree.lookup(repo, Oid.of(TREE_SHA1), GitObject.Type.TREE);
Tree t2 = (Tree) Tree.lookup(repo, Oid.of(TREE_SHA2), GitObject.Type.TREE); 
Diff diff = Diff.treeToTree(repo, t1, t2, Diff.Options.create(Diff.Options.CURRENT_VERSION));
// once you get the diff object, you can access Diff.Delta
Diff.Delta delta = diff.getDelta(0);
// or iterate over all deltas:
diff.foreach(<callbacks>)

注意:代码计算树差异,因为 git 提交实际上是工作树的快照。当您说要区分两个提交时,实际上是要区分两棵树。


推荐阅读