title: How to use same grunt task with different options/arguments?
body: <p>I am using the grunt-git plugin found here: <a href="https://github.com/rubenv/grunt-git" rel="nofollow">https://github.com/rubenv/grunt-git</a>. The plugin defines some tasks like gitpush and gitpull among others. Here is an example of the gitpush task:</p>
  
  <pre><code> grunt.initConfig({
      pkg: grunt.file.readJSON('package.json'),
  
      //grunt-git tasks 
      gitpush: {
          task: {
            options: {
                remote: 'origin',
                branch: 'cojo',
          }
        }
      },
  </code></pre>
  
  <p>The branch option is required. Its default value is null, i.e. I can leave it blank because it will not push to the current branch I am on, it will just not push at all. Sometimes I want to use it to push to the "master" branch instead of the "cojo" branch. What I can't figure out (I am new to Grunt) is how to create the gitpush task again, under a different name, in order to give it the option to push to the master. In my head I picture what I want like this:</p>
  
  <pre><code> gitpush: {
          task: {
            options: {
                remote: 'origin',
                branch: 'cojo',
          }
        }
      },
  
   gitpush2: {
          task: {
            options: {
                remote: 'origin',
                branch: 'master',
          }
        }
      },
  </code></pre>
  
  <p>This obviously doesn't work yet because gitpush is the name of the task defined by the grunt-git plugin. Another option I thought of was creating an alias task and passing an argument to it, but I don't know if this would be possible or not.</p>