Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git钩子在bash上检查前缀_Git_Bash_Github_Git Bash_Githooks - Fatal编程技术网

Git钩子在bash上检查前缀

Git钩子在bash上检查前缀,git,bash,github,git-bash,githooks,Git,Bash,Github,Git Bash,Githooks,我需要一个bash脚本的帮助,该脚本可以自动在commit-m消息中添加前缀,它不是服务器端,只是repo,我需要添加消息“User:…”,如果用户键入commit消息名称,例如“Jhon”,它将是User:Jhon。也许谁能帮我写个剧本 这是我要做的 编写一个脚本(例如prefix_commit.sh),如下所示: #/bin/bash git提交-m用户:“$1” 注意: 使用git commit-m“User:$1”也可以在这里使用 使脚本可执行(只需执行一次): $chmod

我需要一个bash脚本的帮助,该脚本可以自动在commit-m消息中添加前缀,它不是服务器端,只是repo,我需要添加消息“User:…”,如果用户键入commit消息名称,例如“Jhon”,它将是User:Jhon。也许谁能帮我写个剧本


这是我要做的


  • 编写一个脚本(例如
    prefix_commit.sh
    ),如下所示:

    #/bin/bash
    git提交-m用户:“$1”
    
    注意:

    • 使用
      git commit-m“User:$1”
      也可以在这里使用

  • 使脚本可执行(只需执行一次):

    $chmod+x./prefix_commit.sh
    

  • 从命令行调用脚本并按如下方式传递提交消息:

    $。/prefix_commit.sh“示例提交消息”
    
    注意:

    • 如果您计划使用多个单词编写消息,请确保在提交消息周围使用单引号


  • 将参数传递给bash脚本

    • 参数可以在bash脚本或函数中接收,如下所示:

      $1#第一个参数
      $2#第二个参数
      $3#第三个参数
      ### $4, $5, $6, $7 ... 等
      

    • 假设我有一个名为
      echo_my_args.sh
      的脚本,它回显了三个参数:

      #/bin/bash
      回声1美元
      回声2美元
      回声3美元
      

    • 我可以将三个参数传递给脚本,并看到它们得到响应:

      $。/echo\u my\u args.sh“我的第一个arg”“我的第二个arg”“我的第三个arg”
      我的第一个arg
      我的第二个arg
      我的第三个arg
      

    • 在此再次注意,如果参数有多个单词,则必须使用单引号。如果传递单字参数,则不需要单引号:

      $。/echo\u my\u args.sh第一秒第三
      第一
      第二
      第三
      

    • 这里有一些关于如何使用的更多信息


    谢谢,它很有效!!也许你能解释一下“1美元”是做什么的?太棒了!非常感谢你,丹!现在我明白了,最后我开始了解它是如何工作的:)没问题——我很高兴它起到了作用!Bash脚本编写非常有趣。Dan,看,现在我尝试编写一个脚本,检查我的前缀,如果prefix=User:foo,允许提交,如果prefix是其他内容,则拒绝。现在,我提交我的脚本时什么也不做:(我的代码是:#!/bin/sh MSG_empty=“--您必须为提交提供有意义的注释。谢谢!---\n END\n“MSG_prefix=“--您必须在签入前加上以下内容之一-User:或Name:echo-e$MSG_empty>/dev/stderr-,确保日志消息包含prefix.grep-P”^(用户名):[\t]+.{2,}“>/dev/null | | | | | |出口1#所有检查都通过了,所以允许提交出口0@А||||||||我可以在今天晚些时候下班后查看这一点,如果这是从Google获得的…可能的重复项