我正在编写现有源代码管理 (Subversion) 和 Git 之间的一些单向网关过程的脚本。由于排除的路径,git-svn 在其远程分支中留下了许多空的线性提交,我想从结果分支中排除这些提交。在某些时候,我从 gitcherry 获取 SHA 的提交列表,我需要将其扔到目标分支。
我想排除空的提交(那些 git show
不提供差异,仅提供注释的提交)并且有一个父级,即。 e.不 merge 。我可以在脚本中使用哪些命令来进行此类测试?低级瓷器更可取,因为它适合自动解析。
我可以信赖最新版本的 Git,目前有 2.6.2。
最佳答案
git rev-parse ${SHA}^1
测试第一个父级,git rev-parse ${SHA}^2
测试第二个父级。检查 ^2
时 merge 提交将出错。
不引入任何更改的提交将具有与其父级相同的树 SHA。 git rev-parse ${SHA}^{tree}
将为您提供提交的树 SHA,然后将其与其父级的树进行比较 - ${SHA}~1
关于git - 如何在 Git 中测试空的单父提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33644078/