如何使vistizen替代默认的git commit命令



我当前正在创建自定义脚本来通过执行npm run commit来运行Commitizen Commit命令,但我只想让它通过npm run commit乘坐默认的git commit,以某种方式.....所以任何人都会做git commit自动将人定向到犯罪仪界面,并忽略git commit后在codizen可用时放置的任何人。

我该怎么做?我做了Google,找不到可行的解决方案。

谢谢

不可能通过git本身覆盖默认的git命令,但是您可以将以下内容放入.bashrc

function git() {
    case $* in
        commit* ) npm run commit ;; # or yarn commit
        * ) command git "$@" ;;
    esac
}

如果第二个参数为" commit",则将覆盖git命令,如果不是,则使用普通的git命令。(command确保我们不递归使用我们的功能 - 它将直接转到GIT可执行文件,而不是回到我们定义的函数。)

有关更多信息,请参见此处。

请注意"委员会文档"中的警告:

注意:如果您使用的是诸如Husky之类的东西,您将需要将脚本命名,除了"提交"(例如" CM":" Git-cz")。原因是因为NPM-Scripts具有一个"功能",其中它自动运行脚本,其中XXX是另一个脚本的名称,其中XXX是另一个脚本的名称。本质上,如果您将脚本命名为" commit",则NPM和Husky将两次运行" PROCMIT"脚本,而周围的工作是防止NPM触发的Precompit脚本。

我会推荐yarn cz/npm run cz

这实际上是可能的。根据官方文档,这是可以使用Husky

实现的
"husky": {
  "hooks": {
    "prepare-commit-msg": "exec < /dev/tty && git cz --hook || true",
  }
}

这也有相同文档的一部分:)

最新更新