java - java - 如何在没有中间提交的情况下查看两个提交之间的更改?
问题描述
我想找出使用java的两个提交之间的区别,有人可以帮助我吗?
解决方案
使用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 提交实际上是工作树的快照。当您说要区分两个提交时,实际上是要区分两棵树。
推荐阅读
- firebase - 我可以将 Cloud Functions Invoker 角色与 firebase 函数一起使用吗?
- odoo - 创建自定义搜索视图以基于 one2many 字段中的两个字段以及模块中存在的其他字段进行搜索
- excel - 自动化报告:使用 VBA 从 IE 中的下拉列表中进行选择
- sonarqube - 如何从 Sonar java 自定义规则中获取 sonar-project.properties 的属性
- reactjs - 使用条件渲染时未调用图像标签上的 React onLoad 事件
- perl - 在 @INC 中找不到 MyApp/Schema.pm
- sql-server - 如何使用存储在 msgbox 的 db 表中的值?
- kubernetes - Redis 集群客户端不适用于 GKE 上的 Redis 集群
- odata - 发布到复杂类型的数组
- java - 链接构造函数是否有约定或正确顺序?