0.0.6 • Published 6 years ago

@alanchenchen/gittask v0.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
6 years ago

GitTask

A plugin CLI to task your git operations.将git命令模块组合的CLI插件

Author:Alan Chen

E-mail: 739709491@qq.com

version: 0.0.6

date: 2018/11/16

只能通过node来执行

Feature

  • 将常用的git命令业务组件化,然后像使用插槽一样自定义git的工作流。
  • 内置14个常用命令扩展,全部是CLI中文操作,高效便捷。
  • 支持自定义命令扩展,支持链式顺序执行,支持链式命令扩展之间参数传递。

Directory tree

├─example       demo代码
├─screenshot    效果截图
└─src
    └─commands  内置的命令扩展

npm.io npm.io

Usage

  • yarn add @alanchenchen/gittask or npm install @alanchenchen/gittask --save 安装依赖
  • 在项目根目录新建一个js文件,例如wrok.js,在其中调用如下:
    const { WorkFlow } = require('@alanchenchen/gittask')
    const questFlow = require('@alanchenchen/gittask/src/commands/questFlow')
    const showBranch = require('@alanchenchen/gittask/src/commands/showBranch')
    const modifyOldBranch = require('@alanchenchen/gittask/src/commands/modifyOldBranch') 
    const addModifiedFile = require('@alanchenchen/gittask/src/commands/addModifiedFile') 
    const commit = require('@alanchenchen/gittask/src/commands/commit') 
    const push = require('@alanchenchen/gittask/src/commands/push') 
    const deleteOrigin = require('@alanchenchen/gittask/src/commands/deleteOrigin')

    /* 插件内置13个常用的命令扩展,先引入,然后自由组合,task内会按照索引顺序依次执行 */
    const task = [showBranch, questFlow, modifyOldBranch, addModifiedFile, commit, push, deleteOrigin]
    WorkFlow.use(task)
  • 然后在当前目录工作区打开终端,输入node work,接下来就可以按照CLI的流程一步步操作啦~

Options

  • gittask包导出3个变量:

    1. WorkFlow, [Object], 包含一个可以使用的方法useuse支持传入一个数组,数组项必须是命令扩展(可以是自己定义的)
    2. git, [Object], 包含内置的13个命令扩展的命令参数。
    3. shell, [Function], 运行命令行的函数。参数如下: cmd [Array], 必选,命令的参数数组,例如git branch -a,cmd则是['branch', '-a'] param [Array], 可选,默认命令参数后面的参数,默认为空数组,例如git branch alan,cmd是['branch'],param则是['alan'] * prefixPath [String], 可选,命令行运行的程序路径,默认为git,可以是其他命令路径,支持非git操作

      13种内置命令扩展

      namedescriptionreturn value (扩展返回值)
      addModifiedFile将项目中发生改变的文件添加到git缓存透传上一个扩展传来的值
      checkoutBranch切换当前分支到指定分支用户选择的新分支名
      checkVersion显示当前git的版本信息/
      commit将git中的缓存提交到commit操作透传上一个扩展传来的值
      deleteBranch删除本地仓库某个分支/
      deleteOrigin删除远程仓库某个分支/
      modifyOldBranch将某个分支名替换为新的分支名,命名分支用户选择的新分支名
      newBranch新建一个本地分支用户选择的新分支名
      pull拉取指定分支的远程仓库用户选择的拉取分支名
      push将指定分支的文件提交到远程仓库,默认会取addModifiedFile传入的新分支名,如果没有,则会提交当前分支/
      questFlow询问用户是否按照git工作流来配置的提问/
      showBranch显示当前所有分支,包含远程分支/
      showLog显示当前分支的log日志/
      showStatus显示当前分支文件的状态,只有当有状态变化,才能调用addModifiedFile/
  • 插件支持自定义命令扩展,但是格式必须如下:

    const chalk = require('chalk') // 让终端可写流文本颜色改变的模块
    const inquirer = require('inquirer') // 终端可读流交互的模块
    const { git, shell } = require('@alanchenchen/gittask') // 插件自带的shell方法和默认git参数

    // 一定要导出一个异步函数,可选接收一个参数,param是task中前一个命令扩展传入的参数
    module.exports = async (param) => {
        await shell(['-V'],[], 'node') // 异步打印出当前node版本号
        return '我是传入给下一个命令扩展的参数' // return会将参数传入给task中下一个命令扩展,可以不传
    }

License

  • MIT
0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago