美文网首页
node获取git修改文件清单

node获取git修改文件清单

作者: halapro_liu | 来源:发表于2019-01-10 01:17 被阅读62次
const fs = require('fs')
const path = require('path')
const exec = require('child_process').exec
const command = 'git diff --name-status HEAD~2 HEAD~3'
// 获取git改动清单
const getArrList = (str, type) => {
  const arr = str.split('\n')
  return arr.filter(item => {
    const regex = new RegExp(`[${type}].*`)
    if (regex.test(item)) {
      return item !== undefined
    }
  })
}

/**
 * @description 获取类型清单
 * @param {*} arr
 * @param {*} type M:修改,D:删除 A:新增
 * @returns
 */
const formatList = (arr, type) => {
  return arr.map(item => {
    return item.replace(/\s/g, '').replace(type, '')
  })
}
exec(command, 'utf8', (err, stdout, stderr) => {
  if (err) {
    console.log('err:', err)
    console.log('stderr:', stderr)
  } else {
    const typeList = ['M', 'D', 'A']
    const dictList = {
      'M': '修改',
      'D': '删除',
      'A': '新增'
    }
    let arr
    typeList.forEach(type => {
      arr = getArrList(stdout, type)
      arr = formatList(arr, type)
      console.log(`${dictList[type]}:`, arr)
      const options = {
        encoding: 'utf8'
      }
      const dir = path.resolve(__dirname, '../file')
      const data = `${dictList[type]}:\n` + arr.join('\n') + '\n'
      if (arr.length > 0) {
        fs.appendFile(dir + '/1.txt', data, options, (err) => {
          if (err) console.log(err)
        })
      }
    })
  }
})

相关文章

  • node获取git修改文件清单

  • 在ubunut上源码安装nodejs

    1.git上获取node.js源码 2.修改目录执行权限 3.使用 ./configure 创建编译文件 这里需要...

  • git获取修改文件列表

    获取最近一次修改的文件列表 git diff --name-only HEAD~ HEAD 获取两次commit之...

  • git相关技巧

    1.查询某一文件的修改记录:git log 。 利用git log 接文件名来获取这个文件的所...

  • Git 修改删除重命名

    修改远程仓库地址 修改.git文件(本人推荐) 进入.git文件夹,编辑.git文件中的config文件,修改co...

  • Ubuntu 源码安装Node.js

    在 Github 上获取 Node.js 源码: 修改目录权限: 使用 ./configure 创建编译文件,并按...

  • Git使用Tip

    提取Git历史记录中的文件:打开终端,进入项目目录;获取你提交或修改该文件时git commit id;然后执行以...

  • Git基本命令

    一、Git的文件状态  已修改  在工作目录修改Git文件 已暂存  对修改的文件执行Git暂存操作,将文件纳入暂...

  • git命令

    git status //查看那些文件有修改git diff 文件名 //查看对应文件的修改内容git che...

  • Git简明教程

    先git clone获取最新仓库,在此基础上修改提交! 1.创建git工程目录 git init 文件夹名 2.提...

网友评论

      本文标题:node获取git修改文件清单

      本文链接:https://www.haomeiwen.com/subject/kcxorqtx.html