我正在尝试编写检查以确保子模块实际上指向该子模块中master分支的直接历史记录中的提交(不是要在master分支上合并的分支)。 / p>
我尝试使用以下命令解析git日志输出:
git log --format=format:%H --first-parent master | grep COMMITID
但是我觉得git提供了一个更好的解决方案,这将依赖于git中更标准的功能(而不是通过管道传递到grep)。
例如,超级项目包含以下子模块:
A---B---C topic
/
D---E---F---G master
如果超级项目直接指向主题,则将报告错误,因为下次超级项目将子模块更新为master时,主题将丢失。
相反:
A---B---C topic
/ \
D---E---F---G---H master
如果超级项目指向母版,则不会报告错误。
很不错的一点是能够检查主题是否实际上已经合并,但是当前这是可选的,因为在运行脚本时,我什至不确定在合并之前我是否拥有主题的提交ID。
答案 0 :(得分:1)
git分支具有--contains
,其中列出了包含提交的分支:
例如:
git branch master --contains 93730c0d57635784c67f71e56cba1548588c90d4
有关更多详细信息,请使用
git branch --help