【问题标题】:githook to validate newly created branch namesgitook 验证新创建的分支名称
【发布时间】:2016-07-03 00:38:50
【问题描述】:

有谁知道是否有一个 gitook 会挂钩到分支的创建,以便在分支名称实际创建之前拒绝它?

我目前使用 commit-msg 来验证提交时的分支名称,但我正在寻找一种方法来避免在分支不符合我们的策略(正则表达式)时重命名它。

【问题讨论】:

    标签: git githooks


    【解决方案1】:

    没有(并且在某种程度上它无法控制:分支名称在获取和推送期间通过 refspecs 跨网络传输,并且 refspecs 有一定的限制)。

    一个 git 命令,git check-ref-format;它的documentation 描述了 Git 允许的内容。 (分支名称就是任何以refs/heads/ 开头的引用。)

    【讨论】:

    • 是的,我可以一直控制所有分支名称,但我想如果我可以检查git checkout, or git branch,结果就足够了。
    【解决方案2】:

    有谁知道是否有一个 gitook 会挂钩到分支的创建,以便在分支名称实际创建之前拒绝它?

    您唯一可以强制执行任何操作的地方就是您自己的存储库。在您的预接收退出中,

    while read old new ref; do 
        yourtesthere "$ref" || { rc=1; echo "$ref failed yourtesthere's validation"; }
    done
    exit $rc
    

    并且没有人可以将错误的 refname 推送到您的存储库。在将名称传递给 git 之前检查名称的命令在别名 / oneliner 领域中已失效。

    当然,您可以分发yourtesthere 命令,任何想要使用它的人都可以在他们自己的存储库中使用它来测试分支名称,但正如您的存储库是您的一样,他们的存储库也是他们的。

    【讨论】:

      【解决方案3】:

      似乎您指的是为提交或分支创建设置策略。 有一个 git config 命令可以帮助放置一些模板 例如:

      $ git config --global commit.template ~/.template.txt $ git提交

      主题行

      发生了什么

      [票:X]

      # Please enter the commit message .......
      #
      # modified:   lib/test.rb
      #
      ~
      ~
      ".git/COMMIT_EDITMSG"
      

      抱歉,如果这没有帮助。谢谢。

      【讨论】:

        猜你喜欢
        • 2015-01-12
        • 1970-01-01
        • 1970-01-01
        • 2020-12-13
        • 1970-01-01
        • 2020-05-31
        • 1970-01-01
        • 1970-01-01
        • 2017-06-09
        相关资源
        最近更新 更多