git-hooks配置与使用

2,065 阅读1分钟

随着项目不断迭代,有时会制定一些git规范或者在提交commit之前执行一些脚本操作,此时需要我们对git进行一些hook的操作

单个项目hook

  • 如果对git hook工作原理还不太了解的,可以先阅读下面文章 自定义 Git - Git 钩子

  • 默认hooks文件: .git/hooks/commit-msg,修改该文件

    #!/bin/sh
    echo "**** clean local tag **** "
    git tag -l | xargs git tag -d
    git fetch --tags
    
  • .git文件夹不会上传至远程仓库的,不受版本控制

  • 在项目根目录创建.githooks文件,然后把commit-msg命令放进去

    git config core.hooksPath .githooks

全局git hook: core.hooksPath

#创建hooks文件夹
mkdir -p ~/.git-hooksPath/hooks
#配置全局git hooksPath
git config --global core.hooksPath ~/.git-hooksPath/hooks  
#确保脚本可以执行
chmod a+x ~/.git-hooksPath/hooks/xxx

注意:这里设置完之后,必须把项目下的.git删除,重新执行git init

  • 全局git hook 更适合团队项目开发,只需要配置一次

参考

Git Hooks的使用

全局git hook的几种方式