猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
git怎么实现过滤文件内容里的关键字,不允许提交?
比如PHP代码里的join,foreach里的sql?
白衣染霜花
浏览 416
回答 4
4回答
湖上湖
用githook吧
0
0
0
回首忆惘然
项目内部的.git/hooks里面有很多git-hook的sample shell脚本。 通过判断commit的内容里有无相关禁词,来做是否提交。 #!/bin/bash if [ #有关键词 ]; then echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" echo "" echo "禁止使用XXXX关键词代码!" echo "" echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" exit 1 fi 当然,判断commit内容会比较复杂,需要先拿到commit内容,再判断。
0
0
0
富国沪深
换个思路通过忽略文件间接实现:单独弄个文件,把想忽略的内容放到里面,使用时代码中引入文件内容,gitignore 这个文件。
0
0
0
慕标琳琳
用别的方法实现了,虽然有点2.。。 //入口文件引入代码审查文件 if (is_file('./check_code.php')) { require_once('./check_code.php'); } check_code.php <?php $keyword_arr = array('join', 'JOIN'); $allow = 255; //目录中目前存在的join foreach ($keyword_arr as $value) { $cmd = 'grep -r --exclude-dir=Runtime '.$value.' * | wc -l'; $r = execInBackground($cmd); if($r>$allow){ exit('代码里包含的join查过额定数量'.$allow.',现为'.$r); } } function execInBackground($cmd) { $sum = 11; if (substr(php_uname(), 0, 7) == "Windows"){ $r = pclose(popen("start /B ". $cmd, "r")); } else { $r = exec($cmd . " > /dev/null &"); } return $r; } ?>
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
PHP
php如何把参数放在Http Request Heade????
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续