粘贴
使用更新的依赖关系伪造版本
原始重播时间 https://github.com/stephenlacy/gulp-git 页面存档备份,存于互联网档案馆
| 软件包 | 粘贴 |
| 说明 | Gulp (gulpjs.com) 的 Git 插件 |
| 节点版本 | 页:1 |
| Gulp 版本 | 4.x (中文(简体) ) |
使用量
安装
npm install gulp-git --save
0:4.0 推出"突破变"!!
不需要进行 维尼 文件已重构 . 请审查以下修改文件: □ 实例
var gulp = require('gulp');
var git = require('gulp-git');
// Run git init
// src is the root folder for git to initialize
gulp.task('init', function(){
git.init(function (err) {
if (err) throw err;
});
});
// Run git init with options
gulp.task('init', function(){
git.init({args: '--quiet --bare'}, function (err) {
if (err) throw err;
});
});
// Run git add
// src is the file(s) to add (or ./*)
gulp.task('add', function(){
return gulp.src('./git-test/*')
.pipe(git.add());
});
// Run git add with options
gulp.task('add', function(){
return gulp.src('./git-test/*')
.pipe(git.add({args: '-f -i -p'}));
});
// Run git commit
// src are the files to commit (or ./*)
gulp.task('commit', function(){
return gulp.src('./git-test/*')
.pipe(git.commit('initial commit'));
});
// Run git commit with a computed commit message
gulp.task('commit', function(){
let newVersion;
function computeNewVersion() { newVersion = /* ... */ }
return gulp.src('./git-test/*')
.pipe(computeNewVersion())
.pipe(git.commit(() => `Bumps to version ${newVersion}`));
});
// Run git commit with options
gulp.task('commit', function(){
return gulp.src('./git-test/*')
.pipe(git.commit('initial commit', {args: '-A --amend -s'}));
});
// Run git commit without checking for a message using raw arguments
gulp.task('commit', function(){
return gulp.src('./git-test/*')
.pipe(git.commit(undefined, {
args: '-m "initial commit"',
disableMessageRequirement: true
}));
});
// Run git commit without appending a path to the commits
gulp.task('commit', function(){
return gulp.src('./git-test/*')
.pipe(git.commit('initial commit', {
disableAppendPaths: true
}));
});
// Run git commit, passing multiple messages as if calling
// git commit -m "initial commit" -m "additional message"
gulp.task('commit', function(){
return gulp.src('./git-test/*')
.pipe(git.commit(['initial commit', 'additional message']));
});
// Run git commit, emiting 'data' event during progress
// This is useful when you have long running githooks
// and want to show progress to your users on screen
gulp.task('commit', function(){
return gulp.src('./git-test/*')
.pipe(git.commit('initial commit', {emitData:true}))
.on('data',function(data) {
console.log(data);
});
});
// Run git remote add
// remote is the remote repo
// repo is the https url of the repo
gulp.task('addremote', function(){
git.addRemote('origin', 'https://github.com/stevelacy/git-test', function (err) {
if (err) throw err;
});
});
// Run git remote remove
// remote is the remote repo
gulp.task('removeremote', function(){
git.removeRemote('origin', function (err) {
if (err) throw err;
});
});
// Run git push
// remote is the remote repo
// branch is the remote branch to push to
gulp.task('push', function(){
git.push('origin', 'master', function (err) {
if (err) throw err;
});
});
// Run git push
// branch is the current branch & remote branch to push to
gulp.task('push', function(){
git.push('origin', function (err) {
if (err) throw err;
});
});
// Run git push with options
// branch is the remote branch to push to
gulp.task('push', function(){
git.push('origin', 'master', {args: " -f"}, function (err) {
if (err) throw err;
});
});
// Run git push with multiple branches and tags
gulp.task('push', function(){
git.push('origin', ['master', 'develop'], {args: " --tags"}, function (err) {
if (err) throw err;
});
});
// Run git pull
// remote is the remote repo
// branch is the remote branch to pull from
gulp.task('pull', function(){
git.pull('origin', 'master', {args: '--rebase'}, function (err) {
if (err) throw err;
});
});
// Run git pull from multiple branches
gulp.task('pull', function(){
git.pull('origin', ['master', 'develop'], function (err) {
if (err) throw err;
});
});
// Run git fetch
// Fetch refs from all remotes
gulp.task('fetch', function(){
git.fetch('', '', {args: '--all'}, function (err) {
if (err) throw err;
});
});
// Run git fetch
// Fetch refs from origin
gulp.task('fetch', function(){
git.fetch('origin', '', function (err) {
if (err) throw err;
});
});
// Clone a remote repo
gulp.task('clone', function(){
git.clone('https://github.com/stevelacy/gulp-git', function (err) {
if (err) throw err;
});
});
// Clone remote repo to sub folder ($CWD/sub/folder/git-test)
gulp.task('clonesub', function() {
git.clone('https://github.com/stevelacy/git-test', {args: './sub/folder'}, function(err) {
// handle err
});
});
// Tag the repo with a version
gulp.task('tag', function(){
git.tag('v1.1.1', 'Version message', function (err) {
if (err) throw err;
});
});
// Tag the repo with a version and empty message
gulp.task('tag', function(){
git.tag('v1.1.1', '', function (err) {
if (err) throw err;
});
});
// Tag the repo With signed key
gulp.task('tagsec', function(){
git.tag('v1.1.1', 'Version message with signed key', {signed: true}, function (err) {
if (err) throw err;
});
});
// Create a git branch
gulp.task('branch', function(){
git.branch('newBranch', function (err) {
if (err) throw err;
});
});
// Checkout a git branch
gulp.task('checkout', function(){
git.checkout('branchName', function (err) {
if (err) throw err;
});
});
// Create and switch to a git branch
gulp.task('checkout', function(){
git.checkout('branchName', {args:'-b'}, function (err) {
if (err) throw err;
});
});
// Merge branches to master
gulp.task('merge', function(){
git.merge('branchName', function (err) {
if (err) throw err;
});
});
// Reset a commit
gulp.task('reset', function(){
git.reset('SHA', function (err) {
if (err) throw err;
});
});
// Show the formatted git diff
gulp.task('diff', function(){
gulp.src('./*')
.pipe(git.diff('master', {log: true}))
.pipe(gulp.dest('./diff.out'));
});
// Git rm a file or folder
gulp.task('rm', function(){
return gulp.src('./gruntfile.js')
.pipe(git.rm());
});
gulp.task('addSubmodule', function(){
git.addSubmodule('https://github.com/stevelacy/git-test', 'git-test', { args: '-b master'});
});
gulp.task('updateSubmodules', function(){
git.updateSubmodule({ args: '--init' });
});
// Working tree status
gulp.task('status', function(){
git.status({args: '--porcelain'}, function (err, stdout) {
if (err) throw err;
});
});
// Other actions that do not require a Vinyl
gulp.task('log', function(){
git.exec({args : 'log --follow index.js'}, function (err, stdout) {
if (err) throw err;
});
});
// Git clean files
gulp.task('clean', function() {
git.clean({ args: '-f' }, function (err) {
if(err) throw err;
});
});
// Get the current branch name
git.revParse({args:'--abbrev-ref HEAD'}, function (err, branch) {
console.log('current git branch: ' + branch);
});
// Run gulp's default task
gulp.task('default',['add']);
^ API (英语)
git.init( 选项, cb)
git init
创建空的 git repo
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
cb: 函数,如果有错误,则通过
git.init({args:'options'}, function (err) {
//if (err) ...
});
git.clone( 远程、 选择、 cb)
git clone <remote> <options>
克隆首次远程重播
remote: 字符串、 远程 URL
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
cb: 函数,如果有错误,则通过
git.clone('https://remote.git', function (err) {
//if (err) ...
});
可设置脱去文件夹或子文件夹 args: '<destination>'
git.clone('https://remote.git', {args: './sub/folder'}, function (err) {
//if (err) ...
});
git.add( 选项)
git add <files>
添加文件到 repo
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024, maxFiles: Infinity}
gulp.src('./*')
.pipe(git.add());
});
git.commit( 消息, 选择)
git commit -m <message> <files>
提交更改为 repo
message: 字符串或字符串数组,承诺消息
opt对象(可选) {args: 'options', cwd: '/cwd/path', maxBuffer: 200 * 1024, quiet: true, disableMessageRequirement: false, disableAppendPaths: false, multiline: false}
gulp.src('./*')
.pipe(git.commit('commit message'));
});
git.add 远程( 远程、 url、 选择、 cb)
git remote add <remote> <repo https url>
添加远程 repo url
remote:字符串,远程名称,默认: origin
url: 字符串、 URL 远程
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
cb: 函数,如果有错误,则通过
git.addRemote('origin', 'git-repo-url', function (err) {
//if (err) ...
});
git.remove 远程( 远程, 选择, cb)
git remote remove <remote>
删除远程重播
remote: 字符串, 远程名称
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
cb: 函数,如果有错误,则通过
git.removeRemote('origin', function (err) {
//if (err) ...
});
git.fetch( 远程, 分支, 选择, cb)
git fetch <remote> <branch>
从远程 Repo 获取 refs 和对象
remote:字符串,远程名称,默认: origin
branch:字符串,分支,默认值:"
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
cb: 函数,如果有错误,则通过
git.fetch('origin', '', function (err) {
//if (err) ...
});
git.pul( 远程, 分支, 选择, cb)
git pull <remote> <branch>
从远程 Repo 调取更改
remote:字符串,远程名称,默认: undefined
branch: 字符串QQ阵列, 分支, 默认 : undefined
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
cb: 函数,如果有错误,则通过
git.pull('origin', 'master', function (err) {
//if (err) ...
});
// without any remote or branches
git.pull(function(err){
//if (err) ...
});
// with only a remote
git.pull('upstream', function(err){
//if (err) ...
});
// with remote and an array of branches
git.pull('upstream' ['dev', 'master'], function(err){
//if (err) ...
});
git.push( 远程, 分支, 选择, cb)
git push <remote> <branch>
推动更改到远程 Repo
remote:字符串,远程名称,默认: origin
branch: 字符串( 可能是) null),分支,默认值: master
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true}
cb: 函数,如果有错误,则通过
git.push('origin', 'master', function (err) {
//if (err) ...
});
git.tag( 版本、 消息、 选择、 cb)
git tag -a/s <version> -m <message>
带有发布版本的标签重播, 在没有参数的情况下返回所有标签
version: 字符串(可选),标签名称
message: 字符串或字符串数组( 可选), 标签消息
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
cb: 函数,如果有错误,则通过
git.tag('v1.1.1', 'Version message', function (err) {
//if (err) ...
});
如果选项。 签名为真, 标记将使用 git 安全密钥 :
git.tag('v1.1.1', 'Version message with signed key', {signed: true});
git.branch(分支,选择,cb)
git branch <new branch name>
创建新分行但不切换到它
(想要切换 当你创建? 使用 git.checkout({args:'-b'}). ) (中文(简体) )
branch: 字符串,分支
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
cb: 函数,如果有错误,则通过
git.branch('development', function (err) {
//if (err) ...
});
git.showBranch( 选择, cb)
git show-branch <opt>
显示分枝及其承诺
opt对象(可选) {args: 'options'}
cb: 函数,如果有错误,则通过
git.showBranch({'args': '--list -a'}, function (err) {
//if (err) ...
});
git.checkout (分支, 选择, cb)
git checkout <new branch name>
检查带有文件的新分支
branch: 字符串,分支
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
cb: 函数,如果有错误,则通过
git.checkout('development', function (err) {
//if (err) ...
});
如果您想要创建分支并切换到它:
git.checkout('development', {args:'-b'}, function (err) {
//if (err) ...
});
如果您想要检查出文件( 如还原文件) , 请使用 git. checkoutFiles :
gulp.src('./*')
.pipe(git.checkoutFiles());
git. checkout Files( 选择)
git checkout <list of files>
退出( 如重设) 文件
opt对象(可选) {args: 'options', quiet: true, maxBuffer: 200 * 1024}
gulp.src('./*')
.pipe(git.checkoutFiles());
git.commerce(分支,选择,cb)
git merge <branch name> <options>
将分支合并到当前分支
branch: 字符串,源分支
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
cb: 函数,如果有错误,则通过
git.merge('development', function (err) {
//if (err) ...
});
git.rm () (中文(简体) )
git rm <file> <options>
从 git 删除一个文件并删除它
opt对象(可选) {args: 'options', quiet: true, maxBuffer: 200 * 1024}
gulp.src('./*')
.pipe(git.commit('commit message'));
});
git.reset( 承诺、 选择、 cb)
git reset <SHA> <options>
将工作目录重新设置为指定任务散列
commit: 字符串、 承诺散列或引用
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
cb: 函数,如果有错误,则通过
git.reset('HEAD' {args:'--hard'}, function (err) {
//if (err) ...
});
git.revParse( opt, cb) (中文(简体) )
git rev-parse <options>
获取仓库的细节
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
cb: 函数, 如果有错误, 或命令 stdout
git.revParse({args:'--short HEAD'}, function (err, hash) {
//if (err) ...
console.log('current git hash: '+hash);
});
git.add 子模块 ()
git submodule add <options> <repository> <path>
选项: 对象
.addSubmodule('https://repository.git', 'path', {args: "options", quiet: true})
git.update 子模块 ()
git submodule update <options>
选项: 对象
.updateSubmodule({args: "options", quiet: true})
git. status( 选择, cb)
git status <options>
显示工作树状态
opt对象(可选) {args: 'options', cwd: '/cwd/path', maxBuffer: 200 * 1024, quiet: true}
cb: 函数( 可选), 通过错误和命令 stdout
git.status({args : '--porcelain'}, function (err, stdout) {
// if (err) ...
});
git.exec( 选择, cb)
git <options>
运行其他不需要Vinyl的 git 动作 .
opt对象(可选) {args: 'options', cwd: '/cwd/path', maxBuffer: 200 * 1024, quiet: true}
cb: 函数( 可选), 通过错误和命令 stdout
git.exec({args : 'log --follow index.js'}, function (err, stdout) {
//if (err) ...
});
git. clean( 路径, 选择, cb)
git clean <options>
从工作树上删除未跟踪的文件
paths: 字符串( 可选), 受清洁操作影响的路径
opt: 对象(可选), {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
cb: 函数(可选),如果有错误,则通过
git.diff( 分支, 选择)
git diff master <options>
Git 对象之间的diffs
branch: 字符串、分支名称、承诺名称或 git 标记
opt对象(可选) {args: 'options', cwd: '/cwd/path', quiet: true, maxBuffer: 200 * 1024}
gulp.task('diff', function(){
gulp.src('./*')
.pipe(git.diff('develop', {log: true}))
.pipe(gulp.dest('./diff.out'));
});
您可以在 示例文件夹.
可能的错误 :
最大强度超过
已报告 这里。 。 。 .
如果你得到这个错误,这意味着git进程没有足够的内存.
每个函数都有一个附加选项: maxBuffer。 。 。 .
gulp.task('pull', function(){
git.pull('origin', 'master', {args: '--rebase', maxBuffer: Infinity}, function (err) {
if (err) throw err;
});
});
命令线太长了.
已报告 这里。 。 。 .
如果 git add 命令超过 Windows 上的8191个字符 你会得到这个错误.
这个 add 函数有附加选项: maxFiles。 。 。 .
gulp.task('add', function(){
return gulp.src('./git-test/*')
.pipe(git.add({maxFiles: 8}));
});
自由主义
(麻省理工学院执照)
版权 (c) 2015 Steve Lacy 我@ slacy. me 斯莱西. 我
特此免费准许任何人获得 该软件和相关文件文件的副本(第2条) “软件”,在软件中不受限制地处理,包括 不限制使用、复制、修改、合并、出版、, 软件的分发、分版和/或销售,以及 允许获得软件的人这样做,但须符合下列条件: 下述条件:
上述版权通知和本许可通知应为: 列入软件的所有副本或大部分.
软件是提供的"是", 没有任何种类的恐惧, ,包括但不受限制的 紧迫性,特别目的和 无所不入。 连警察或警察都没有 B. 任何索赔、救济或其他负债的赔偿责任 合同、合同或其他事项,产生于、产生于或产生于 与软件或使用 或其他交易在软件.

