Git plugin for gulp providing comprehensive git command integration for build workflows
npx @tessl/cli install tessl/npm-gulp-git@2.11.0Gulp 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.
npm install gulp-gitconst git = require('gulp-git');ES Module:
import * as git from 'gulp-git';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();
});
});Gulp Git is built around two main API patterns:
All functions accept an optional opt parameter for customization including working directory, additional arguments, buffer limits, and quiet mode.
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;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;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;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;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;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;Operations for working with Git data including diffs and file content retrieval.
function diff(compare: string, opt?: DiffOptions): Transform;
function catFile(opt?: CatFileOptions): Transform;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
}Functions may throw or call callbacks with errors for:
Common error scenarios include attempting to commit without a message, checking out non-existent branches, or pushing without proper remote configuration.