我在现有的源代码控制(Subversion)和Git之间编写了一些单向网关程序。由于排除了路径,git-svn
在其远程分支中留下了许多空线性提交,我想从结果分支中排除这些提交。在某些时候,我从git cherry
获得SHA提交的提交列表,我需要将其提交到目标分支。
我想要排除空的提交(git show
不提供差异,只提供注释的提交)并且拥有一个父级,即。即不合并。我可以在脚本中使用哪些命令来进行此类测试?低级瓷器是优选的,因为它适用于自动化解析。
我可以依赖Git是最新版本,目前有2.6.2。
答案 0 :(得分:2)
git rev-parse ${SHA}^1
测试第一个父级,git rev-parse ${SHA}^2
测试第二个父级。检查^2
时,合并提交会出错。
不引入任何更改的提交将具有与其父级相同的树-SHA。 git rev-parse ${SHA}^{tree}
将为您提供提交的树-SHA,然后将其与其父级树${SHA}~1