首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >立即使用GULP GIT添加、提交和推送

立即使用GULP GIT添加、提交和推送
EN

Stack Overflow用户
提问于 2016-03-23 20:36:29
回答 1查看 3.9K关注 0票数 2

我试图在一个命令行中创建一个执行add .commitpush的任务,比如:gulp gitsend -m "My changes"

代码语言:javascript
复制
var gulp = require('gulp');
var argv = require('yargs').argv;
var git = require('gulp-git');

gulp.task('gitsend', function() {
if (argv.m) {
    console.log('adding, commiting and pushing to git...');
    return gulp.src('.')
    .pipe(git.add())
    .pipe(git.commit(argv.m)
    .pipe(git.push('origin', 'master', function (err) {
        if (err) throw err;
    })));
}
});

但这是行不通的:它抛出了一个异常:

代码语言:javascript
复制
/Users/me/myproj/front/node_modules/gulp-git/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:623
    var written = dest.write(chunk);
                       ^
TypeError: undefined is not a function
    at write (/Users/me/myproj/front/node_modules/gulp-git/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:623:24)
    at flow (/Users/me/myproj/front/node_modules/gulp-git/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:632:7)
    at DestroyableTransform.pipeOnReadable (/Users/me/myproj/front/node_modules/gulp-git/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:664:5)
    at DestroyableTransform.emit (events.js:104:17)
    at emitReadable_ (/Users/me/myproj/front/node_modules/gulp-git/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:448:10)
    at emitReadable (/Users/me/myproj/front/node_modules/gulp-git/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:444:5)
    at readableAddChunk (/Users/me/myproj/front/node_modules/gulp-git/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:187:9)
    at DestroyableTransform.Readable.push (/Users/me/myproj/front/node_modules/gulp-git/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:149:10)
    at DestroyableTransform.Transform.push (/Users/me/myproj/front/node_modules/gulp-git/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:145:32)
    at Array.forEach (native)

你知道是怎么回事吗?我怎么才能把我的需要归档呢?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-24 02:08:43

您可以将单个任务拆分出来(添加、提交、推送),然后使用运行序列运行它们,以确保在推送之前先完成添加和提交。

代码语言:javascript
复制
var gulp = require('gulp');
var argv = require('yargs').argv;
var git = require('gulp-git');
var runSequence = require('run-sequence');

gulp.task('init', function() {
  console.log(argv.m);
});

gulp.task('add', function() {
  console.log('adding...');
  return gulp.src('.')
    .pipe(git.add());
});

gulp.task('commit', function() {
  console.log('commiting');
  if (argv.m) {
    return gulp.src('.')
      .pipe(git.commit(argv.m));
  }
});

gulp.task('push', function(){
  console.log('pushing...');
  git.push('origin', 'master', function (err) {
    if (err) throw err;
  });
});

gulp.task('gitsend', function() {
  runSequence('add', 'commit', 'push');
});

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36188219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档