如何在Git中测试一个空的,单个父级的提交?

时间:2015-11-11 04:01:25

标签: git

我在现有的源代码控制(Subversion)和Git之间编写了一些单向网关程序。由于排除了路径,git-svn在其远程分支中留下了许多空线性提交,我想从结果分支中排除这些提交。在某些时候,我从git cherry获得SHA提交的提交列表,我需要将其提交到目标分支。

我想要排除空的提交(git show不提供差异,只提供注释的提交)并且拥有一个父级,即。即不合并。我可以在脚本中使用哪些命令来进行此类测试?低级瓷器是优选的,因为它适用于自动化解析。

我可以依赖Git是最新版本,目前有2.6.2。

1 个答案:

答案 0 :(得分:2)

git rev-parse ${SHA}^1测试第一个父级,git rev-parse ${SHA}^2测试第二个父级。检查^2时,合并提交会出错。

不引入任何更改的提交将具有与其父级相同的树-SHA。 git rev-parse ${SHA}^{tree}将为您提供提交的树-SHA,然后将其与其父级树${SHA}~1

进行比较