繁体   English   中英

Git Hook:如何判断已标记的提交是否已合并到master

[英]Git Hook: How to tell if tagged commit has been merged to master

我正在尝试编写git挂钩,以便在推送时部署Web应用程序。

我从源克隆了一个裸仓库,并编写了一个预接收钩子来执行某些规则。
规则之一是仅应部署带注释的标签,并且所有更改都必须已合并到主服务器中。

为了执行第二条规则,我尝试使用后接收和

  git branch --contains <tag_name>

以便查看master是否在列表中。

当我在原籍上这样做时,我得到

  master
* testbranch

但是当我在部署服务器上的裸仓库中运行相同的命令时,我只会得到

* (detached from e5f1fa4)

我是否缺少某些东西,或者这种方法根本不能在裸仓库中使用?

如果是这样,是否还有其他方法可以验证标签的提交是否已经合并到master中?

首先,执行git show <tag_name>并复制该提交的哈希。

然后,只需使用grep git log获取该哈希值:

git log master | grep <hash>

如果未返回任何输出,则该哈希值尚未合并到master分支。 否则,哈希将从grep输出,表明它已被合并。

要在一个命令中完成所有操作:

git log master | grep "`git show <tag_name> | grep commit`"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM