如何克隆,然后使用git-gulp正确检出标签

时间:2016-04-06 15:34:04

标签: gulp gulp-git

我试图让脚本滚动:

  • 克隆一个repo(例如git clone someClonePath.git),然后
  • 签出一个标签(git checkout tags / someTag)
gulp.task('clone', function(){
  git.clone('somepath/cloneDir.git', function (err) {
    if (err) {
      throw err;
    }
  });
});


gulp.task('checkout',['clone'], function(){
  process.chdir('./cloneDir');
  git.checkout('tags/' + argv.tag,function (err) {
    if (err) {
      throw err;
    }
  });
});

结帐完成(失败),然后克隆完成。这里的问题在于我对gulp中的异步任务的理解。如何验证克隆是否已成功克隆“克隆”在使用gulp-git检出标签之前?

1 个答案:

答案 0 :(得分:1)

查看更新后的帖子后的一些事项。

  1. 要使依赖任务起作用,您可以使用回调函数或只是返回一些内容,这是优选的,这样您就不会紧密地联系任务,这就是在这种情况下使用回调的功能。
  2. 看起来您想要克隆到您选择的目录。要做到这一点,你必须指定git.clone命令的一些参数以及尝试结账时的参数。
  3. 还要验证您使用的是有效的网址来进行克隆。
  4. 试试这个:

    gulp.task('clone', function(){
      return git.clone('URL-TO-REMOTE-REPO', {args: './cloneDir'}, function (err) {
        if (err) {
          throw err;
        }
      });
    });
    
    
    gulp.task('checkout',['clone'], function(){
      git.checkout('tags/' + argv.tag,{ cwd: './cloneDir' }, function (err) {
        if (err) {
          throw err;
        }
      });
    });