2016-03-23 16 views
0

を使用しての一度押し:gulp gitsend -m "My changes"は、追加コミットと私は、<code>add .</code>を行うタスクを作成しようとしている<code>commit</code>、1つのコマンドラインで<code>push</code>ようだGULP-GIT

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; 
    }))); 
} 
}); 

しかし、これは動作していません:例外がスローされます:

/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) 

何が間違っていて、私の必要性をどのようにアーカイブできますか? ありがとうございます。

+1

のGitの電力の一部は、コードを共有するからコミットコードを分離する能力です。これにより、共有する準備ができているかどうか心配することなくコミットするのが適切な時だと感じるたびにコミットできます。コミットとプッシュを組み合わせることで、この重要な機能を失います。 – Schwern

+0

タイトルからタグを削除しました。 [質問にはタイトルに「タグ」を含める必要がありますか?](http://meta.stackexchange.com/q/19190)を参照してください。 –

+0

タグではありません!それはタイトルです!!!!インデックスを読んで目を引く人々にとっては必要不可欠です。あなたの態度は哀れで恣意的ではない。 –

答えて

4

個々のタスクを分割して(追加、コミット、プッシュ)、run-sequenceを使用してそれらを実行して、追加とコミットがプッシュする前に確実に完了するようにすることができます。

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'); 
 
});

+0

Ty、Calvin!かなりいい ! –

+0

ドキュメントページのコードです。私はあなたがその質問をする前にそれを見ていないと思う – CodeWizard

関連する問題