实现一行命令提交 GitHub:简化代码管理的利器 - simple-git

前言

在日常的软件开发工作中,我们经常需要使用版本控制系统来管理代码。GitHub 是一个非常流行的代码托管平台,而 Git 是最常用的版本控制工具之一。然而,使用 Git 进行一些常见的操作可能需要多条命令,例如添加、提交和推送代码等。在本篇博客中,我们将介绍如何使用 simple-git 库来简化这些操作,实现只需一行命令即可完成提交代码到 GitHub。

工具介绍

simple-git

simple-git 是一个轻量级的Node.js库,提供了一系列简化的API,用于操作Git命令。通过simple-git,我们可以在JavaScript代码中执行Git命令,而不需要手动在终端中输入。

你可以使用以下命令来安装simple-git:

 pnpm i -D simple-git

process.cwd

获取当前工作目录的根路径。

简单使用

const simpleGit = require('simple-git')
const git = simpleGit()

// 初始化仓库
git.init().then(() => {
  console.log('Git repository initialized!')
})

// 添加所有文件
git.add('./*').then(() => {
  console.log('Files added!')
})

// 第一次提交 
git.commit('Initial commit').then(() => {
  console.log('Committed!')
})

// 推送到 origin/master
git.push('origin', 'master').then(() => {
  console.log('Pushed to origin/master!')  
}) 

案例实战

目标

接下来,我们将以一个案例实战来展示如何使用 simple-git 实现一行命令提交代码到 GitHub。我们的目标是通过一行命令检测工作目录中的更改或新增的文件,并将其添加、提交并推送到远程仓库。
主要有以下两个步骤:

  • simple-git写好运行脚本
  • package.json 配置运行命令

手搓脚本

script/handleGit.js

const simpleGit = require('simple-git');
const getCurrentDay = require('./getCurrentDay');

// 配置 simple-git 选项
const options = {
  baseDir: process.cwd(), // 设置 git 的工作目录
  binary: 'git', // 如果 git 可执行文件不在系统路径中,则需要设置此项
  maxConcurrentProcesses: 6, // 在此处设置为您的 CPU 内核数
  trimmed: false, // 如果为 true,则删除前导和尾随空格
};
const git = simpleGit(options);

// 处理 Git 操作
function handleGit() {
  // 1. 检查是否安装 Git
  git.status(null, (err, status) => {
    const repo_status = status;
    if (repo_status.not_added.length > 0) {
      addAll();
    }
    if (repo_status.modified.length > 0) {
      commit(`${getCurrentDay} 更新了${repo_status.modified.length}个文件`);
    }
    if (repo_status.ahead > 0) {
      push();
    }
  });
}

// 添加所有文件到暂存区
function addAll() {
  git.add('./*', (err, result) => {
    console.log('addAll');
  });
}

// 提交更改
function commit(msg) {
  git.commit(msg, (err, result) => {
    console.log('commit');
  });
}

// 推送到远程仓库
function push() {
  git.push('origin', 'master', (err, result) => {
    console.log('push');
  });
}

// 执行 Git 操作
handleGit();

script/getCurrentDay.js

function getCurrentDay() {
    // 格式 2023年6月23日
    let date = new Date();
    let year = date.getFullYear();
    let month = date.getMonth() + 1;
    let day = date.getDate()
    day = `${year}${month}${day}`
    return day;
}
module.exports = getCurrentDay();

配置运行命令

package.json文件里配置脚本运行命令
在这里插入图片描述

然后运行脚本··
好啦!我们完成一个简单的nodejs脚本啦,这样就不用每天add,commmit,再push了

小结

通过使用 simple-git 库,我们可以简化 Git 操作,并实现一行命令提交代码到 GitHub。本文介绍了 simple-git 的安装和基本用法,并通过案例实战演示了如何使用 simple-git 实现一行命令检测工作目录的更改或新增的文件,并将其提交并推送到 GitHub。希望这篇博客能帮助你简化代码提交的过程,提高开发效率!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰镇白干

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值