在Git Push中获取标签预先接收

时间:2013-11-06 21:48:59

标签: git github githooks gitlab git-bash

我在GIT中使用pre-receive个钩子(在Linux上使用bash)来过滤允许进入我的仓库的推送。

我需要过滤开发人员对我的GIT仓库所做的推动,只需按下这个必需品(#就是数字):

  • # Commits > 0 && # Tags != 0:否
  • # Commits > 0 && # Tags == 0:是
  • # Commits == 0 && # Tags > 1:否
  • # Commits == 0 && # Tags == 1&& Key is correct:是

考虑与提交相同的分支和其他操作。您只能使用右键(在标记注释中指定)推送单个标记。你不能用其他元素推送标签。

问题是$refname只有HEAD引用,所以如果你这样做了:

  1. Commit
  2. Tag(任何修订,甚至是老歌)
  3. Commit
  4. $refname将指向最后一个引用(即/refs/heads/master),这样做:

    if [[ "$refname" == "refs/tags/"* ]]; then ... fi

    不会按照提及的顺序工作。我尝试使用rev-listfor-each-ref来迭代引用,但没有成功。

    我如何处理正在接收的推送,知道标签的数量(以及获取每个标签的评论)以满足上限条件?

    PS:还要考虑使用--all选项推送的情况,接收多个分支。

0 个答案:

没有答案