首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何创建一个检查提交消息的git预提交钩子?

创建一个检查提交消息的git预提交钩子可以通过以下步骤完成:

  1. 打开项目的.git目录,进入hooks文件夹。如果该文件夹下没有pre-commit文件,则创建一个新文件并命名为pre-commit。
  2. 使用文本编辑器打开pre-commit文件,并添加以下内容:
代码语言:txt
复制
#!/bin/sh

commit_msg_file=$1
commit_msg=$(cat $commit_msg_file)

# 检查提交消息的格式是否符合要求
if ! echo "$commit_msg" | grep -qE "^[A-Z]{2,}-[0-9]{1,}: .+"; then
    echo "提交消息格式不正确,请按照\"JIRA编号: 提交描述\"的格式编写提交消息。"
    exit 1
fi

# 检查提交消息是否包含敏感词汇
if echo "$commit_msg" | grep -qiE "敏感词1|敏感词2|敏感词3"; then
    echo "提交消息包含敏感词汇,请修改后再次提交。"
    exit 1
fi

exit 0

上述脚本中,首先获取提交消息的文件路径和内容。然后,使用正则表达式检查提交消息的格式是否符合要求,要求格式为"JIRA编号: 提交描述"。如果格式不正确,则输出错误信息并终止提交。接下来,使用正则表达式检查提交消息是否包含敏感词汇,如果包含,则输出错误信息并终止提交。最后,如果一切正常,则退出脚本。

  1. 保存并关闭pre-commit文件。
  2. 在终端中,进入项目的根目录,并给pre-commit文件添加执行权限:
代码语言:txt
复制
chmod +x .git/hooks/pre-commit

现在,每次执行git commit命令时,都会触发pre-commit钩子脚本,检查提交消息的格式和内容。如果检查失败,则会阻止提交。

注意:以上脚本只是一个简单的示例,你可以根据实际需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何编写 Git 提交消息

用空行分隔主体和主体 git commit 手册页这样写道: 虽然不是必需,但最好以一个简短(少于 50 个字符)行开始提交消息,总结更改,然后是一个空行,然后是更全面的描述。...提交消息中直到第一个空白行文本被视为提交标题,并且该标题在整个 Git 中使用。例如,Git-format-patch(1) 将提交转换为电子邮件,包括主题行中标题和正文中其余提交。...但它非常适合 Git 提交主题行。原因之一是Git 本身在代表您创建提交时使用命令式。...例如,使用时创建默认消息git merge为: Merge branch 'myfeature' 使用时git revert: Revert "Add the thing with the stuff...配置一个文本编辑器比如 Vim 很重要,例如,在编写 Git 提交时将文本换行为 72 个字符。然而,传统上,IDE 在为提交消息文本换行提供智能支持方面一直很糟糕。 ---- 7.

1.5K180

怎么创建一个良好Git提交信息

译   原文:https://dev.to/chrissiemhrk/git-commit-message-5e21 ? 提交信息是对提交之前添加和更改文件所做更改简短描述。...Body 正文用于说明你进行了哪些更改以及进行更改原因。并非所有提交都很复杂,需要一个正文,尤其是如果你仅是开发一个个人项目,因此正文是可选。 4....这是Udacity学生git 提交信息例子Udacity Git Commit Message Style Guide feat: 少于50个字符更改概括。...(我通常将它们放在提交信息末尾) ---- 我目前使用git alias创建带有表情符号漂亮提交消息,我提交信息结构如下: [emoji] (scope): 例如:...INITIAL COMMIT($1): $2\"; }; f" ---- 感谢你提议! 这是Git表情符号一个网站:https://gitmoji.carloscuesta.me/ ? ?

63530

2020最新编辑器集成eslint、prettier、stylelint,git提交检查代码配置

git提交检查 1、安装 husky和link-staged 在安装之前,要先配置好eslint配置或prettier配置 执行以下命令,会自动配置好husky和lint-staged npx mrm...lint-staged 个人理解: husky:用来给git对应时机注册钩子 lint-staged:用来监听文件是暂存文件 2、编辑 package.json 文件: 注意几点: lint-staged...从v10.0.0对原始暂存文件任何新修改都将自动添加到提交中,不需要手动写入git add 命令,目前网上看到大部分教程都是带有git add 命令,如果加了之后,lint-staged会报一个警告...lint-staged从v10.0.0起,使用git stash来提高速度并在运行时提供备份,运行时必须有一个提交 lint-staged从v10.0.0开始,需要Node.js 10.13.0或更高版本...要允许创建提交,请使用该--allow-empty选项 lint-staged匹配文件中,可以执行scripts命令,也可以直接执行eslint修复命令等。

2.7K10

如何使用Git提交我们代码

如何使用Git提交我们代码 Git介绍以及工作流程 属性介绍 工作区: 就是你在电脑里能看到目录。 暂存区: 英文叫 stage 或 index。..."修改用户名git config --global user.name "your email"修改地址 创建仓库命令 下表列出了 git 创建仓库命令: 初始化仓库,如果你没有看到.git目录,那是因为这个目录默认是隐藏...git merge 会产生一个合并记录,可以理解为合并两个分支并生成一个提交,可以让人知道什么时候有合并。而rebase会合并分支为一条,这条分支又会是以分支为准,因此又被称作变基。...网上对这两个操作看法和使用也都是公说公有理,婆说婆有理,其实安装它们特点合理去选择这两个操作就行了。 提交与修改 Git 工作就是创建和保存你项目的快照及与之后快照进行对比。...下表列出了有关创建提交项目的快照命令: 添加文件到暂缓区(.git/index) 提交日志 查看历史提交记录 远程操作 远程仓库操作 分支命令 列出本地所有的远程分支

92430

git如何退出vim_git提交命令

在命令模式中,连按两次大写字母Z,若当前编辑文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑文件没被修改过,则Vi直接退出, 返回到shell。...在使用w命令时,可以再给编辑文件起一个文件名。 [例6] :w newfile 此时Vi将把当前文件内容保存到指定newfile中,而原有文件保持不变。...若newfile是一个已存在文件,则Vi在显示窗口状态行给出提示信息: File exists (use !...若用户就是不想保存被修改后文件而要强行退出Vi时,可使用命令 :q! Vi放弃所作修改而直接退到shell下。...在末行模式下,输入命令 :x 该命令功能同命令模式下ZZ命令功能相同 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172514.html原文链接:https

1.5K30

如何在CDSW上创建Git工程并提交代码

如果企业内部搭建私有的Git服务,在CDSW使用Git创建工程后,代码修改成功后需要提交Git服务器。本文Fayson主要介绍如何在CDSW中使用git命令提交代码到服务。...在进行git目录初始化时加上--bare参数,Git创建一个裸仓库,裸仓库是没有工作区,因为服务器上Git仓库只是为了共享,所以不让用户直接登录到服务器上去更改工作区,并且服务器上Git仓库通常都是以...这里执行该命令主要目的是解决git默认会拒绝push问题。 以上步骤就完成了一个工程仓库创建。 3.CDSW上提交代码到Git ---- 1.登录CDSW创建一个git工程 ?...在会话窗口创建一个test.py文件 5.打开该会话” Terminal access” ?...---- 1.登录CDSW创建一个工程 ?

89530

如何优雅编写git提交信息

当遇到问题需要回溯时候就成了给自己造成麻烦,因为无法通过commit message来非常直观看到这一次提交了什么,做了哪些修改。这个时候只能一个一个文件打开来看。...这个时候如果有规范提交将会减少不必要麻烦。 概述 约定式提交规范是一种基于提交信息轻量级约定。它提供了一组简单规则来创建清晰提交历史;这更有利于编写自动化工具。...feat: 类型 为 feat 提交表示在代码库中新增了一个功能(这和语义化版本中 MINOR 相对应)。...脚注中除了 BREAKING CHANGE: ,其它条目应该采用类似 git trailer format 这样惯例。...其它提交类型在约定式提交规范中并没有强制限制,并且在语义化版本中没有隐式影响(除非它们包含 BREAKING CHANGE)。可以为提交类型添加一个围在圆括号内范围,以为其提供额外上下文信息。

52110

如何撤消 Git 中最新本地提交

图片本文将详细介绍如何Git中撤消最新本地提交。步骤1:查看提交历史在撤消最新本地提交之前,首先需要查看提交历史,以确定要撤消提交哈希值。...使用以下命令查看提交历史:git log此命令将显示所有提交历史记录,包括每个提交哈希值、作者、日期和提交消息。请注意最新提交,您将使用其哈希值进行后续操作。...使用以下命令撤消最新本地提交git reset --hard HEAD~1该命令将回退到上一个提交,并删除最新提交及其相关更改。请注意,此命令是不可逆,撤消后无法恢复删除提交和更改。...使用以下命令撤消最新本地提交git reset HEAD~1该命令将回退到上一个提交,并将最新提交更改保留为未提交更改。这样,您可以重新调整暂存区,并将更改作为新提交。...使用Git进行版本控制时,了解如何正确地撤消提交是至关重要。通过掌握这些技巧,您可以更好地管理代码库,并确保代码准确性和稳定性。

1.2K30

如何删除错误提交 git 大文件

那么如何把这个压缩包彻底从 git 删除? 如果需要删除 git 历史记录,使用方法很简单,请看 Git如何永久删除文件(包括历史记录) - shines77 - 博客园 。...接下来是如果在开发之前已经拉下存在大文件开发分支并且在他之后有提交,那么需要创建一个分支在合并之前。 ? ? 然后把提交 pick 到新分支 ?...删除原来分支,这样就好 最后命令是使用 gc 清掉这个提交 这时候查看自己git 文件夹,如果文件夹还是那么大,那么说明还有一个分支是引用提交大文件,需要自己去看一下是哪个分支。...这个命令需要所有小伙伴执行,不然有一个小伙伴提交了包含大文件提交,那么刚才做就是白做了。...需要说明,git 如果提交一个文件,然后删除他,继续提交,那么这个文件是存在 git 中,需要使用特殊命令才可以删除。

3K10

技巧 - 如何一个 Git 提交信息及几种不同规范

受 Growth 3.0 开发影响,最近更新文章频率会有所降低。今天,让我们来谈谈一个 Git、SVN 提交信息是怎样规范出来。...在团队协作中,使用版本管理工具 Git、SVN 几乎都是这个行业标准。当我们提交代码时候,需要编写提交信息(commit message)。...在 Jira 里每一个功能卡都有对应的卡号,而 Bamboo 支持使用 Jira 任务卡号关联功能。即在持续构建服务器上示例对应任务卡号,即相应提交人。 ?...由于 Git 提交人只显示一个,所以写上两个名字。当提交的人不在时,就可以问另外一个人修改原因。...Git 工具推荐 至于我日常用 Git 观看工具,一个是 WebStorm 和 Intellij IDEA 自带一个则是 SourceTree。

1K70

Git教程】如何清除git仓库所有提交记录,成为一个干净仓库

其中有一个名为ColaFrameworkUnity框架项目,马三开发了一年多了,期间提交代码时候在Log中上传了一些比较敏感信息,这些信息都可以在Github上面搜索到,马三想把这些Log信息清除掉...,使其变成一个没有提交记录“新仓库”。....提交跟踪过文件(Commit the changes) git commit -am "commit message"   4.删除master分支(Delete the branch) git...master分支 (Finally, force update your repository) git push -f origin master   通过以上几步就可以简单地把一个Git仓库历史提交记录清除掉了...,不过最好还是在平时开发中严格要求一下提交日志规范,尽量避免在里面输入一些敏感信息进来。

1.9K30

如何克服解决Git冲突恐惧症?(Git移交提交记录)

到现在我们已经学习了Git基础知识,包括: 如何克服解决Git冲突恐惧症?(序) 如何克服解决Git冲突恐惧症?(Git入门介绍) 如何克服解决Git冲突恐惧症?...(Git基础篇—上) 如何克服解决Git冲突恐惧症?(Git基础篇—下) 如何克服解决Git冲突恐惧症?(Git分支策略) 如何克服解决Git冲突恐惧症?...(Git四大组件) 如何克服解决Git冲突恐惧症?(Git高级篇) 概念涵盖了Git 90%功能,同样也足够满足开发者日常需求。...git cherry-pick 第一个命令是git cherry-pick, 命令形式为: git cherry-pick ......rebase命令, 简写为-i 如果你在命令后增加了这个选项, Git会打开一个UI界面并列出将要被复制到目标分支备选提交记录,它还会显示每个提交记录哈希值和提交说明,提交说明有助于你理解这个提交进行了哪些更改

56330

教你写一个快速提交git代码shell脚本

Shell脚本,就是利用Shell命令解释功能,对一个纯文本文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令集合。...1、git提交命令可以用shell缩短成一句话 2、更新某个工程sdk库 3、打包,编译等命令 4、批量上传空文件夹 5、总之能想到终端命令都可以尝试着写,总之就是一个操作执行多个命令,简单方便...直接建一个.sh文件,比如我就是:git-push.sh,直接在编辑器里面编写,执行命令就是 git-push.sh 我项目都是在一个文件夹中,所以执行时候会传递三个参数就是  git-push.sh...$3 ] then echo "####### 请输入自己提交代码分支 #######" exit; fi git push origin "$3" echo "####### 推送成功...每次都得先进到 .sh文件夹中来执行这个命令吗? 我们可以命名一个别名,alias作用就是将 为了让频繁使用命令变简单 语法:alias 【别名】=【命令】。

4.4K10

教你写一个快速提交git代码shell脚本

Shell脚本,就是利用Shell命令解释功能,对一个纯文本文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令集合。...1、git提交命令可以用shell缩短成一句话 2、更新某个工程sdk库 3、打包,编译等命令 4、批量上传空文件夹 5、总之能想到终端命令都可以尝试着写,总之就是一个操作执行多个命令,简单方便 三、...直接建一个.sh文件,比如我就是:git-push.sh,直接在编辑器里面编写,执行命令就是 git-push.sh 我项目都是在一个文件夹中,所以执行时候会传递三个参数就是 git-push.sh...$3 ] then echo "####### 请输入自己提交代码分支 #######" exit; fi git push origin "$3" echo "####### 推送成功...每次都得先进到 .sh文件夹中来执行这个命令吗? 我们可以命名一个别名,alias作用就是将 为了让频繁使用命令变简单 语法:alias 【别名】=【命令】。

1K30
领券