【问题标题】:Need to find commits on a specific branch需要在特定分支上查找提交
【发布时间】:2017-03-05 17:37:39
【问题描述】:

有人可以分享一个代码 sn-p,它显示了我如何使用 JGit API 仅在一个分支上挑选提交。

如果我使用RevWalk,我会得到整个树,包括已合并到指定分支的子分支。

如何在不获取可能已合并到指定分支的分支的父提交的情况下仅获取指定分支上的提交?

找出某个提交所在的分支也可能会有所帮助。


添加更多信息:

如何获取开发分支的所有提交? 所以根据上图,我需要 SHA:

2a34

b468

785c

但不是:

731a

cbdb

谢谢!

【问题讨论】:

  • 我认为,您所要求的在 Git 中是不可能的,您将使用哪个 Git 命令来完成此任务?
  • 不知道瓷器 API 中的任何命令。我想知道是否有可以提供帮助的 jGit API。第二个问题怎么样:如何找出某个提交所在的分支?有相应的 API 吗?
  • 嗨,@PankajTandon。你解决了吗?

标签: branch commit jgit


【解决方案1】:

为了遍历 Git 存储库的历史,从某个分支开始,您可以使用LogCommand,如下所述:JGit: How to get all commits of a branch? (Without changes to the working directory ...)

该命令的addFilter() 方法可用于安装RevFilter 以排除某些提交。

【讨论】:

  • 谢谢吕迪格。但是,nameRev 命令不返回分支的名称。相反,它返回前一个 ref 并在末尾添加了 ~ 。因此,例如,如果分支称为develop,则nameRev 返回的映射在该分支的second 提交上返回develop~1(第一个提交正确返回'develop')。这有点像我正在采用的方法,即沿着分支查找所有提交的方法。我在下面附上一张图片,以便我可以更清楚地说明问题。有任何想法吗?谢谢!
猜你喜欢
  • 2011-08-20
  • 1970-01-01
  • 2013-04-24
  • 2022-01-13
  • 2020-03-23
  • 1970-01-01
  • 1970-01-01
  • 2018-05-12
  • 1970-01-01
相关资源
最近更新 更多