or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

advanced-operations.mdbranch-operations.mddata-operations.mdfile-operations.mdindex.mdinformation-status.mdremote-operations.mdrepository-management.md
tile.json

tessl/npm-gulp-git

Git plugin for gulp providing comprehensive git command integration for build workflows

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/gulp-git@2.11.x

To install, run

npx @tessl/cli install tessl/npm-gulp-git@2.11.0

index.mddocs/

Gulp Git

Gulp Git is a comprehensive Git integration library for the Gulp build system that enables developers to programmatically execute Git commands within their build workflows. It provides a complete set of Git operations including repository initialization, cloning, file staging and committing, branch management, remote repository operations, merging, tagging, and status checking through both stream-based and callback-based APIs that integrate seamlessly with Gulp's streaming build system.

Package Information

  • Package Name: gulp-git
  • Package Type: npm
  • Language: JavaScript (Node.js)
  • Installation: npm install gulp-git
  • Node Version: >= 0.9
  • Gulp Version: 3.x

Core Imports

const git = require('gulp-git');

ES Module:

import * as git from 'gulp-git';

Basic Usage

const gulp = require('gulp');
const git = require('gulp-git');

// Initialize repository
gulp.task('init', function(done) {
  git.init(function(err) {
    if (err) throw err;
    done();
  });
});

// Add files to staging
gulp.task('add', function() {
  return gulp.src('./src/*')
    .pipe(git.add());
});

// Commit changes
gulp.task('commit', function() {
  return gulp.src('./src/*')
    .pipe(git.commit('Initial commit'));
});

// Push to remote
gulp.task('push', function(done) {
  git.push('origin', 'master', function(err) {
    if (err) throw err;
    done();
  });
});

Architecture

Gulp Git is built around two main API patterns:

  • Stream-based Functions: Return Gulp Transform streams for processing vinyl files through Git operations (add, commit, rm, checkoutFiles, catFile, diff)
  • Callback-based Functions: Execute Git commands directly and call completion callbacks (init, clone, push, pull, branch, merge, tag, status, etc.)

All functions accept an optional opt parameter for customization including working directory, additional arguments, buffer limits, and quiet mode.

Capabilities

File Operations

Stream-based operations for staging, committing, and manipulating files in Git repositories. These functions integrate with Gulp's file streaming system.

function add(opt?: AddOptions): Transform;
function commit(message: string | string[] | (() => string), opt?: CommitOptions): Transform;
function rm(opt?: RmOptions): Transform;
function checkoutFiles(opt?: CheckoutFilesOptions): Transform;

File Operations

Repository Management

Core repository operations for initializing, cloning, and managing Git repositories.

function init(opt?: RepoOptions, cb?: Callback): void;
function init(cb?: Callback): void;
function clone(remote: string, opt?: RepoOptions, cb?: Callback): void;
function clone(remote: string, cb?: Callback): void;
function clean(paths?: string, opt?: RepoOptions, cb?: Callback): void;

Repository Management

Branch Operations

Operations for creating, switching, and managing Git branches and merging.

function branch(branch: string, opt?: BranchOptions, cb?: Callback): void;
function branch(branch: string, cb?: Callback): void;
function checkout(branch: string, opt?: BranchOptions, cb?: Callback): void;
function checkout(branch: string, cb?: Callback): void;
function merge(branch: string, opt?: BranchOptions, cb?: Callback): void;
function merge(branch: string, cb?: Callback): void;

Branch Operations

Remote Operations

Functions for managing remote repositories, pushing, pulling, and fetching changes.

function addRemote(remote: string, url: string, opt?: RemoteOptions, cb?: Callback): void;
function removeRemote(remote: string, opt?: RemoteOptions, cb?: Callback): void;
function push(remote?: string, branch?: string | string[], opt?: RemoteOptions, cb?: Callback): void;
function pull(remote?: string, branch?: string | string[], opt?: RemoteOptions, cb?: Callback): void; 
function fetch(remote?: string, branch?: string, opt?: RemoteOptions, cb?: Callback): void;

Remote Operations

Information and Status

Functions for querying repository state, status, and retrieving Git information.

function status(opt?: StatusOptions, cb?: StatusCallback): void;
function status(cb?: StatusCallback): void;
function revParse(opt?: RevParseOptions, cb?: RevParseCallback): void;
function revParse(cb?: RevParseCallback): void;
function showBranch(opt?: ShowBranchOptions, cb?: ShowBranchCallback): void;
function showBranch(cb?: ShowBranchCallback): void;

Information and Status

Advanced Operations

Advanced Git operations including tagging, resetting, stashing, and submodule management.

function tag(version?: string, message?: string | string[], opt?: TagOptions, cb?: TagCallback): void;
function reset(commit?: string, opt?: ResetOptions, cb?: Callback): void;
function stash(opt?: StashOptions, cb?: Callback): void;
function exec(opt?: ExecOptions, cb?: ExecCallback): void;
function addSubmodule(url: string, name?: string, opt?: SubmoduleOptions, cb?: Callback): void;
function updateSubmodule(opt?: SubmoduleOptions, cb?: Callback): void;

Advanced Operations

Data Operations

Operations for working with Git data including diffs and file content retrieval.

function diff(compare: string, opt?: DiffOptions): Transform;
function catFile(opt?: CatFileOptions): Transform;

Data Operations

Common Types

interface BaseOptions {
  cwd?: string;
  args?: string;
  quiet?: boolean;
  maxBuffer?: number;
}

interface Callback {
  (err?: Error): void;
}

interface StatusCallback {
  (err?: Error, stdout?: string): void;
}

interface RevParseCallback {
  (err?: Error, result?: string): void;
}

interface ShowBranchCallback {
  (err?: Error, result?: string): void;
}

interface TagCallback {
  (err?: Error, result?: string | string[]): void;
}

interface ExecCallback {
  (err?: Error, stdout?: string): void;
}

interface SubmoduleOptions extends BaseOptions {
  // Inherits: cwd, args, quiet, maxBuffer
}

interface AddOptions extends BaseOptions {
  /** Maximum files to process at once (default: Infinity) */
  maxFiles?: number;
}

interface CommitOptions extends BaseOptions {
  /** Enable multiline message handling with -F flag */
  multiline?: boolean;
  /** Allow commits without message requirement */
  disableMessageRequirement?: boolean;  
  /** Don't append file paths to commit command */
  disableAppendPaths?: boolean;
  /** Emit 'data' events during commit execution for progress tracking */
  emitData?: boolean;
}

interface RmOptions extends BaseOptions {
  // Inherits: cwd, args, quiet, maxBuffer
}

interface CheckoutFilesOptions extends BaseOptions {
  // Inherits: cwd, args, quiet, maxBuffer
}

Error Handling

Functions may throw or call callbacks with errors for:

  • Missing required parameters (branch names, URLs, remote names)
  • Git command execution failures
  • Invalid parameter types or combinations
  • File system access issues
  • Network connectivity problems (for remote operations)

Common error scenarios include attempting to commit without a message, checking out non-existent branches, or pushing without proper remote configuration.