Giter VIP home page Giter VIP logo

grunt-git's Introduction

grunt-git

Git commands for grunt.

Build Status

Getting Started

This plugin requires Grunt ~0.4.0

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-git --save-dev

One the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-git');

The "gitcommit" task

Commits the working directory.

Overview

In your project's Gruntfile, add a section named gitcommit to the data object passed into grunt.initConfig().

grunt.initConfig({
  gitcommit: {
    your_target: {
      options: {
        // Target-specific options go here.
      },
      files: {
          // Specify the files you want to commit
      }
    }
  },
})

Each target defines a specific git task that can be run. The different available tasks are listed below.

Options

options.message

Type: String Default value: 'Commit'

The commit message.

options.ignoreEmpty

Type: Boolean Default value: false

When true, the task will not fail when there are no staged changes (optional).

Usage Examples

Commit options:

  • message: Commit message
  • files: Files to commit
grunt.initConfig({
    gitcommit: {
        task: {
            options: {
                message: 'Testing'
            },
            files: {
                src: ['test.txt']
            }
        }
    },
});

The "gitrebase" task

Rebases the current branch onto another branch

Options

options.branch (required)

Type: String the name of the branch you want to rebase on to. For example if the current branch were codfish and you wanted to rebase it onto master, you would set this value to master.

options.theirs

Type: Boolean Default value: false

When true, use the git equivalent of svn's theirs-conflict (--strategy=recursive -Xtheirs).

Usage Examples

grunt.initConfig({
  gitrebase: {
    task: {
      options: {
        branch: 'master'
      }
    }
  },
});

The "gittag" task

Creates a git tag.

Overview

In your project's Gruntfile, add a section named gittag to the data object passed into grunt.initConfig().

grunt.initConfig({
  gittag: {
    your_target: {
      options: {
        // Target-specific options go here.
      }
    }
  },
})

Each target defines a specific git task that can be run. The different available tasks are listed below.

Options

options.tag

Type: String Default value: ''

The name of the tag. E.g.: 0.0.1.

options.message

Type: String Default value: ''

The tag message (optional).

Usage Examples

grunt.initConfig({
    gittag: {
        task: {
            options: {
                tag: '0.0.1',
                message: 'Testing'
            }
        }
    },
});

The "gitcheckout" task

Creates a git branch using checkout -b, or checks out a given branch.

Overview

In your project's Gruntfile, add a section named gitcheckout to the data object passed into grunt.initConfig().

grunt.initConfig({
  gitcheckout: {
    your_target: {
      options: {
        // Target-specific options go here.
      }
    }
  },
})

Each target defines a specific git task that can be run. The different available tasks are listed below.

Options

options.branch

Type: String Default value: ''

The name of the branch. E.g.: testing.

options.create

Type: Boolean Default value: false

Whether the branch should be created (optional).

Usage Examples

grunt.initConfig({
    gittag: {
        task: {
            options: {
                branch: 'testing',
                create: true
            }
        }
    },
});

The "gitstash" task

Stash the changes in a dirty working directory away.

Overview

In your project's Gruntfile, add a section named gitstash to the data object passed into grunt.initConfig().

grunt.initConfig({
  gitstash: {
    your_target: {
      options: {
        // Target-specific options go here.
      }
    }
  },
})

Each target defines a specific git task that can be run. The different available tasks are listed below.

Options

options.command

Type: String Default value: 'save'

The stash command to run. E.g.: save, apply.

options.stash

Type: Integer Default value: ''

The stash to apply. E.g.: 0 (optional).

options.staged

Type: Boolean Default value: false

Whether the staged changes should be reapplied (optional).

Usage Examples

grunt.initConfig({
    gittag: {
        stash: {
            options: {
                create: true
            }
        },
        apply: {
            options: {
                command: 'apply',
                staged: true,
                stash: '0'
            }
        }
    },
});

The "gitclone" task

Clones a git repo.

Overview

In your project's Gruntfile, add a section named gitclone to the data object passed into grunt.initConfig().

grunt.initConfig({
  gitclone: {
    your_target: {
      options: {
        // Target-specific options go here.
      }
    }
  },
})

Each target defines a specific git task that can be run. The different available tasks are listed below.

Options

options.bare

Type: Boolean Default value: none

Run git clone with the --bare option applied.

options.branch

Type: String Default value: none

Clone the repo with a specific branch checked out. (Cannot be used in conjunction with 'bare')

options.repository (required)

Type: String Default value: none

The path to the repository you want to clone.

options.directory

Type: String Default value: none

Clone the repo into a specific directory instead of the one git decides.

Usage Examples

grunt.initConfig({
    gitclone: {
        clone: {
            options: {
                repository: 'https://github.com/you/your-git-repo.git',
                branch: 'my-branch',
                directory: 'repo'
            }
        }
    },
});

The "gitreset" task

Creates a git branch using checkout -b, or checks out a given branch.

Overview

In your project's Gruntfile, add a section named gitreset to the data object passed into grunt.initConfig().

grunt.initConfig({
  gitreset: {
    your_target: {
      options: {
        // Target-specific options go here.
      },
      files: {
        src: // Target-specific files go here.
      }
    }
  },
})

Each target defines a specific git task that can be run. The different available tasks are listed below.

Options

options.mode

Type: String Default value: ''

The reset mode to run. E.g.: hard, merge.

options.commit

Type: String Default value: 'HEAD'

Which commit to reset to (optional).

Usage Examples

grunt.initConfig({
    gitreset: {
        task: {
            options: {
                mode: 'hard',
                commit: 'HEAD~1'
            }
        }
    },
});

The "gitpush" task

Pushes to a remote.

Overview

In your project's Gruntfile, add a section named gitcommit to the data object passed into grunt.initConfig().

grunt.initConfig({
  gitpush: {
    your_target: {
      options: {
        // Target-specific options go here.
      }
  },
})

Options

options.remote

Type: String Default value: 'origin'

The remote where to push. E.g.: origin, heroku. The task will push to origin if left unset.

options.branch

Type: String Default value: null

The remote branch to push to. E.g.: master, develop. The task will push to the tracked branch if left unset.

options.all

Type: Boolean Default value: false

Will add the --all flag to the push.

options.tags

Type: Boolean Default value: false

Will add the --tags flag to the push.

options.upstream

Type: Boolean Default value: false

Will add the --set-upstream flag to the push.

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

grunt-git's People

Contributors

figpope avatar kketch avatar mattacular avatar rubenv avatar sequoia avatar thinkanyforever avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.