最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 使用git中的hook对提交代码中的TODO等关键字进行拦截

    正文概述 掘金(地瓜QAQ)   2020-12-21   753

    新人前端,记录一下学习笔记

    什么是hook

    • 和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本。 有两组这样的钩子:客户端的和服务器端的。 客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。 你可以随心所欲地运用这些钩子。

    钩子都被存储在 Git 目录下的 hooks 子目录中。 也即绝大部分项目中的 .git/hooks。
    使用git中的hook对提交代码中的TODO等关键字进行拦截

    • 在代码被commit、margin、push等关键节点的时候都可以使用hook针对提交信息、代码进行检查。

    利用hook检查代码中存在的TODO等关键字

    • 本地调试的时候为了方便我们会将一些代码注释掉,但是偶尔会出现忘记去掉注释的情况,导致线上代码与实际不匹配的问题。这个时候我们就可以利用hook拦截关键字来阻止这些错误被提交到线上。
    • 使用教程
    1. 在项目中安装pre-commit、husky这两个库,在项目中执行npm install pre-commit husky -D
    2. 在项目根目录中找到./.git/hooks文件夹,创建一个文件名称为: check-keyword.sh。

    check-keyword.sh文件不一定要放在上面写的那个文件目录中,随意你喜欢放在哪,只要你在package.json文件中执行的路径对就行。名字也同理。 3. 在check-keyword.sh文件中添加以下代码

    #!/bin/bash
    for FILE in `git diff --name-only --cached`; do
        # 忽略检查的文件
        if [[ $FILE == *".sh"* ]] ; then
            continue
        fi
        # 匹配不能上传的关键字
        grep 'TODO\|debugger\|alert(' $FILE 2>&1 >/dev/null
        if [ $? -eq 0 ]; then
            # 将错误输出
            echo -e $FILE '文件中包含了TODO、debugger、alert其中一个关键字请删除后再提交'
            exit 1
        fi
    done
    exit
    
    1. 在package.json文件中添加如下命令
     "scripts": {
       "check-keyword": "bash ./.git/hooks/check-keyword.sh",
       "check-commit": "npm run check-keyword"
     },
     "pre-commit": [
       "check-commit"
     ]
    

    使用git中的hook对提交代码中的TODO等关键字进行拦截

    1. 这样在执行git的commit命令时如果匹配到关键字就会进行拦截

    使用git中的hook对提交代码中的TODO等关键字进行拦截 使用git中的hook对提交代码中的TODO等关键字进行拦截 6. 如果想忽略某个文件的话可以在bash文件中添加想要忽略文件的正则匹配

    • 注意:bash中 [[ $FILE == *".md"* ]] 这类命令需要注意空格

    使用git中的hook对提交代码中的TODO等关键字进行拦截 使用git中的hook对提交代码中的TODO等关键字进行拦截


    起源地下载网 » 使用git中的hook对提交代码中的TODO等关键字进行拦截

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元