сказка на ночь
На совещании руководитель группы сказал, что каждый раз, когда выполняется небольшое требование и изменяется ошибка, необходимо отправить коммит, а локальную ветку следует отправить на удаленный склад, прежде чем уйти с работы. Те, кто не совершает, те, кто не нажимают, будут вычитать результаты текущего месяца... Хотя я чувствую, что это очень раздражает, но кто делает из себя подработку, и я ничего не смею сказать, я могу только это сделать, что еще я могу сделать. После этого держу git status, git add.Может мне лень), git, git, git, код еще не написан. Затем я подумал, могу ли я ввести команду для автоматического выполнения этих шагов, и тогда родился этот небольшой скрипт.
Реализация скрипта
скрипт написан в оболочке
Определить, установлен ли git
if(!shell.which('git')) {
shell.echo('你还没安装git,请先安装git')
shell.exit(1)
}
Определить, есть ли изменения в файле
if(shell.exec('git status').stdout.indexOf('working tree clean') !== -1) {
shell.echo('没有变动文件')
shell.exit(1)
}
Посмотрите, какие файлы были изменены
if(shell.exec('git status').code !== 0) {
shell.echo('git status执行出错')
shell.exit(1)
}
Добавить отслеживание файлов
if(shell.exec('git add .').code !== 0) {
shell.echo('git add执行出错')
shell.exit(1)
}
Отправить в локальный репозиторий
let intro = process.argv[2]
if(!intro) {
shell.echo('请填写提交信息,格式为feat(xxxx):xxxxx')
shell.exit(1)
}
if(shell.exec(`git commit -m ${intro}`).code !== 0) {
shell.echo('git commit执行出错')
shell.exit(1)
}
отправить удаленный репозиторий
let BranchName = shell.exec('git rev-parse --abbrev-ref HEAD')
// 因为我7点下班,七点后commit的都会推送到远程
if(new Date().getHours() >= 19) {
if(shell.exec(`git push origin ${BranchName}`).code !== 0) {
shell.echo('推送远程失败')
shell.exit(1)
}
shell.echo('推送远程完成')
}
полный код
let shell = require('shelljs')
if(!shell.which('git')) {
shell.echo('你还没安装git,请先安装git')
shell.exit(1)
}
shell.echo('查看哪些文件变动')
if(shell.exec('git status').stdout.indexOf('working tree clean') !== -1) {
shell.echo('没有变动文件')
shell.exit(1)
}
if(shell.exec('git status').code !== 0) {
shell.echo('git status执行出错')
shell.exit(1)
}
shell.echo('开始添加新文件追踪')
if(shell.exec('git add .').code !== 0) {
shell.echo('git add执行出错')
shell.exit(1)
}
let intro = process.argv[2]
if(!intro) {
shell.echo('请填写提交信息,格式为feat(xxxx):xxxxx')
shell.exit(1)
}
if(shell.exec(`git commit -m ${intro}`).code !== 0) {
shell.echo('git commit执行出错')
shell.exit(1)
}
let BranchName = shell.exec('git rev-parse --abbrev-ref HEAD')
shell.echo(`代码提交到本地完成,当前分支是${BranchName}`)
if(new Date().getHours() >= 19) {
if(shell.exec(`git push origin ${BranchName}`).code !== 0) {
shell.echo('推送远程失败')
shell.exit(1)
}
shell.echo('推送远程完成')
}
использовать
node git-commit.js(写上你脚本的文件) 'feat(xxx):xxxxx'(你要commit的描述)
Эффект
без изменений
изменения
Суммировать
Программисты ленивы.