git - 如何在 Git 中测试空的单父提交?

标签 git

我正在编写现有源代码管理 (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/

相关文章:

git - 从 git repo 中获取文件并且 git 忽略它而不从文件系统中删除它

多个单元测试套件上下文中的 Git 工作流程

git - 推送时在存储库中保留特定文件

带有 Windows 客户端的 ubuntu 机器上的 Git

node.js - 部署到 Heroku 的 Node 应用程序中的 git 隐私

git - ZSH 提示未显示 git unstaged 文件

git - 如何查看我的 github SSH key ?

linux - 将 git status 的结果通过管道传递给后续命令

Github 和 Fogbugz

linux - 根据 SSH 主机或身份指定 Git 身份