How to fix Git error: you need to resolve your current index first

If the "error: you need to resolve your current index first" message was shown after an attempt to run a git-merge, git-pull, or git-checkout you can try some of the following solutions:

  1. Make sure all your changes are committed.

    This is a good habit when working with Git, saving you from a lot of trouble. Just make sure the are no uncommitted changes before a merge or a checkout.

    # stage all the changes for commit
    $ git add .
    # commit
    $ git commit -m 'commit message'
  2. Abort the merge and return to the previous state.

    # cancel the merge        
    $ git reset --merge
    # OR
    # Reset all the changes back to the last commit.
    # Note: This cannot be reverted!
    $ git reset --hard HEAD
  3. Resolve the reported conflicts and commit

    If there are code merges that Git could not automatically resolve, they need to be fixed manually. Open the files that have conflicts, fix, save and then commit all the changes.

    # CONFLICT (content): Merge conflict in path/to/file
    # open the file in an editor of your choice
    $ vim /path/to/file_with_conflict
    # repeat for every file that has a conflict and then
    $ git commit -a -m 'commit message'
  4. If this is a git-checkout, you can force it with the -f option.

    This is the last option presented because it has a potential for data loss, and applicable if the changes in the current branch are throwaway. For example, it could be used when moving from a test branch back to master.

    # force-change a branch
    $ git checkout -f TARGET