title: Automate Git commit + versioning + tag by npm node
body: <p>What I have been trying to get is, work with npm version to update the package.json and create a tag and then commit my changes. In this way, I will be able to have tags by version, auto versioning and commit with the info.</p>
  
  <p>The problem I am having is, when I am using npm version, it's doing a tag + commit automatically and then it can not be done if you have previously some changes, So for me, it doesn't make sense to increase the version of your project, before to do the changes/implementation/fixes.</p>
  
  <p>Then, another problem I was having is that I first increase the version as a 'patch', then I do some changes, I add all, I commit and then I publish, at the end, I have 2 commits, 1 because of the npm version patch, and the other one the good one.</p>
  
  <p>I saw in the documentation <a href="https://docs.npmjs.com/cli/version" rel="noreferrer">here</a> that there is a parameter that allow you to disable this auto tag + commit, but then I would really like to use a command in the console to be able to update the package console and get that version set up as a tag.</p>
  
  <p>By another hand, not sure if this that I am saying it does make sense because as far as I know, when you create a tag, you can go back in your project to that point, So how I pretend to work like that if I am disabling the auto commit?</p>
  
  <blockquote>
    <p><strong>Finally</strong>, What I want to make clear is my goal, What I really want to reach is handle by node scripts a semi-automated script to be able
    to increase the version of the project, create a tag with the new
    version, add all changes, commit and push.</p>
  </blockquote>
  
  <p><em>Note: I don't want to use gulp-git as I think there is a way to handle this without it.</em></p>
  
  <p><strong>Not sure</strong> if I was clear enough, if not, please ask and help me :)</p>