Skip to content

git hook husky

  • husky 是 Git hooks 工具,可以防止使用 Git hooks 的一些不好的 commit 或者 push。

  • npx husky add .husky/pre-commit。

    js
      pre-commit 配置
      #!/usr/bin/env sh
      . "$(dirname -- "$0")/\_/husky.sh"
      pnpm lint:lint-staged

git commit 的规范

  • 常用的 git commit 提交规范(公司项目)

    js
      fix:    修复 bug 。
      add:    新功能。
      update: 更新。
      style:  代码格式改变。
      test:   增加测试代码。
      revert: 撤销上一次的 commit。
      build:  构建工具或构建过程等的变动,: gulp 换成了 webpack,webpack 升级等。
  • commitizen AngularJS 规范(适用于大型开源项目)

    js
      用于说明 git commit 的类别,只允许使用下面的标识。
      feat:   新功能(feature)。
      fix/to: 修复 bug,可以是 QA 发现的 BUG,也可以是研发自己发现的 BUG。
      fix:    产生 diff 并自动修复此问题。适合于一次提交直接修复问题。
      to:     只产生 diff 不自动修复此问题。适合于多次提交。最终修复问题提交时使用 fix。
      docs:   文档(documentation)。
      style:  格式(不影响代码运行的变动)。
      refactor: 重构(即不是新增功能,也不是修改 bug 的代码变动)。
      perf:   优化相关,比如提升性能、体验。
      test:   增加测试。
      chore:  构建过程或辅助工具的变动。
      revert: 回滚到上一个版本。
      merge:  代码合并。
      sync:   同步主线或分支的 Bug。

解决冲突方法

  • 方案一

    js
      1、本地 checkout 检出并切换到 A 分支,pull 拉取更新到最新代码。
      2、在本地 A 分支上,merge 合并远程分支 master。
      3、会提示无法合并,手动解决完冲突提交到 A 分支。
      4、回到 PR,会发现 PR 已经无冲突。
      5、让有 merge 权限的人进行 merge 即可。
  • 方案二

    js
      1、本地 checkout 检出并切换到 master 分支,pull 拉取更新到最新的 master 代码。
      2、手动执行将远程 A 分支合并到你本地的 master 分支,此时本地会看冲突的文件。
      3、编辑冲突文件,手动解决冲突后,提交 merge。
      4、回到 PR,可以发现 PR 已经被 merge 了。