自动执行 git add、 git commit 脚本

一、场景

每次写完东西都需要重复这两个命名,有点麻烦、尝试使用一个命令自动化执行两个或多个命令。

二、用到的工具

1、NodeJs 方法 exec

用于向控制台写入命令。注意第二个参数要使用 { stdio:'inherit' }

文档地址:http://nodejs.cn/api-v12/child_process/child_process_exec_command_options_callback.html

2、NodeJs process.argv + 插件 minimist 获取执行命令后携带的参数

minimist 获取执行命令后携带的参数,可选。

3、默认commit -m “当前时间” (new Date().toLocaleString()
4、脚本文件
package.json

{
  "scripts": {
      "gitac": "node script/gitac.js",
  },
}
script/gitac.js

/**
 * @npm 安装 minimist
 * 
 * @description: 执行方式一 node gitac.js --m="需要提交的内容"
 * @scripts "gitac": "node script/gitac.js" ==> 执行方式二 yarn gitac --m="需要提交的内容"
 * 
 * @exec node 命令行方法:http://nodejs.cn/api-v12/child_process/child_process_exec_command_options_callback.html
 * @minimist 提取node执行文件后的参数,官网 https://www.npmjs.com/package/minimist
 */
const util = require('util');
const exec = util.promisify(require('child_process').exec);
const { m } = require('minimist')(process.argv.slice(2));

const inheritTerm = async ({ m }) =>{
    try{
        const add = 'git add .';
        const addres = await exec(add, { stdio:'inherit' });
        if(addres.stderr) return console.error(add, addres.stderr);

        const commit = `git commit -m "${m? m: new Date().toLocaleString()}"`;
        console.log('提交内容', commit)
        const comres = await exec(commit, { stdio:'inherit' });
        if(comres.stderr) return console.error(commit, comres.stderr);
        console.log('提交成功!')
    } catch(error) {
        console.log('在分支主机上未提交任何内容,已撤销提交。')
    }
}
inheritTerm({ m })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值