我想确定远程git存储库(原始)是否包含特定提交。我的用例如下:确定Git存储库是否包含特定提交
我准备创建公开发布。我想包含代表我构建发行版的原始代码库的提交的SHA-1。
我也想确保提交不仅仅是一个本地提交,而且实际上它已被推送到中央存储库(原始)。
我觉得
git pull --all & git branch --contains commit-hash
,然后检查输出,看它是否包含当前分支的跟踪科,工,但似乎相当繁琐。我正在寻找一些更简洁的内容,如git remote --contains origin commit-hash
或git cat-file origin commit-hash
。我认为当确定在推或拉期间需要传输哪些对象时,Git需要使用一些管道命令 - 我对内部组件并不熟悉。
感谢您的帮助。
嗯......我忽略了-r选项。这会起作用,但我仍然认为必须有一些管道命令,我错过了。实际上,我不关心当前分支的跟踪分支是否包含提交。我只关心提交是否存在,而不考虑它可以访问哪个分支。 – Josh 2010-08-17 22:53:19
@Josh:当然,如果这是一个公开发行版,你确实关心它的分支 - 它应该在分支上发布。 – Cascabel 2010-08-18 02:53:33
因为它是一个脚本,最好使用管道等效物:'git merge-base --is-ancestor' –
JaviMerino
2016-05-16 18:07:08