×

实现在giit push时同时执行其他命令,如 npm run deploy

Falcon 2024-09-12 views:
摘要

正在生成中……

由于我当前的cloudflare pages项目并没有在cloudflare里配置与github仓库关联,就需要我手动执行npm run deploy将编译后的代码上传到cloudflare,但这也没什么,小项目的编译很快。

问题在于我想在执行git push到github前后不想再手动敲npm run deploy了。

设置方法也是有的,就是利用Git 的钩子。

可以通过 Git hooks 来实现这个需求。具体来说,可以使用 post-pushpre-push 钩子在执行 git push 的过程中运行 npm run deploy。不过,Git 默认没有 post-push 钩子,但你可以借助一些其他方式来实现。

方法 1: 使用 pre-push 钩子

  1. 进入项目的 .git/hooks 目录
    每个 Git 仓库都有一个 .git/hooks 文件夹,里面包含各种 Git 钩子的示例文件。

  2. 创建/修改 pre-push 钩子
    .git/hooks 目录中创建一个名为 pre-push 的文件(如果文件已存在,就直接编辑它)。

  3. pre-push 文件中添加如下脚本

    #!/bin/sh
    npm run deploy
    
  4. 保存并给予执行权限

    chmod +x .git/hooks/pre-push
    

每次运行 git push 时,Git 会在 push 之前先执行 npm run deploy

方法 2: 使用 post-push 实现

Git 默认没有 post-push 钩子,但你可以通过以下方式模拟 post-push

  1. 创建一个自定义命令
    你可以创建一个 Git alias,执行 git push 之后再自动执行 npm run deploy

    运行以下命令将自定义命令添加到 Git 中:

    git config alias.push-and-deploy '!git push && npm run deploy'
    
  2. 使用新命令推送代码: 之后你可以运行 git push-and-deploy 来推送代码并执行部署。

这两种方法都可以实现你在 git push 的过程中自动执行 npm run deploy 的需求。

目前使用方法 1 。

本文收录于