Gitflow: git flow start/finish reports unstaged changes when there are none to commit or push

Created on 23 Nov 2010  ·  21Comments  ·  Source: nvie/gitflow

Sometimes when performing git flow start or finish, git flow will report:

fatal: Working tree contains unstaged changes. Aborting.

There is however nothing to commit and nothing to pull or push to/from the remote. The working copy is up to date.

I have had to work around this issue by creating false commits of changes to a "readme.txt" file in order to perform these steps, but this is tedious. Is there another command that I can use to see what is blocking the git flow start/finish command?

Most helpful comment

Just do these commands in your terminal:

git status
git add .
git status
git commit -m 'Commit typechanges'

It works well for me ;)

All 21 comments

Please provide a replay of your commands that lead to this issue. That would definitely make it easier to analyse what causes this issue. Try to keep it as short as possible.

This could happen when you delete files and won't commit. Check the staged files with git diff --cached and commit.

There is not output with git diff --cached . Any idea, how to resolve the issue?

i have a same problem. Do you find any decision?

The easiest solution is to commit the changes ,delete the repo and re clone it.

thanks a lot

Most of the time bug is hapening with eGit on Eclipse based ide's, when i use git bash or tortoise git this error does not appear

git reset --hard origin/master can save your life!

It is very strange however executing:
git status
and repeating the command works as a fix in my environment.:-)

we are having the same effect like @georgezlatev working on MAC OS X with intellij Idea 13. Seems that git-flow does not register a commit in a timely fashion ;-)

Will this be fixed?

I only get this error when trying to git flow finish from a subdirectory. It works from the repos root directory.
Cheers guys

Appreciate this thread is old but i'm sure others will still be getting this error and will find this thread. I am using SourceTree and was getting this error. I managed to fix this by right clicking on my feature branch and then merging into develop/origin. I was than able to push my committed changes and delete the feature branch.

best Option would be if the scripts execute a git status before trying to finish a feature:

if output=$(git status --porcelain) && [ -z "$output" ]; then
# finish
else
# normal error
fi

Is this also an issue when finishing a release/hotfix branch?

yes. with Intellj-Gitflow Plugin and in Bash.
when i run a 'git status' in bash and finish feature/release/hotfix it works.

In SourceTree I was getting this error (I was trying to finish a current feature) when SourceTree showed there were no changes. It wasn't until I switched to the Terminal and did a git status it showed a typechange to a file that hadn't been committed (because it didn't show in SourceTree). The changes I had made in the project was a replacement of two .framework files, so a lot of internal changes to those .framework files occurred by the looks of it. Ultimately the error from SourceTree was in fact correct, but I'm disappointed that SourceTree could not show me this change that was stopping me from finishing my feature branch :(

I confirm git status for me helps to see what the unstages changes are

git reset --hard works for me in such cases

git reset --hard worked for me as git status did not display any uncommitted changes.

Just do these commands in your terminal:

git status
git add .
git status
git commit -m 'Commit typechanges'

It works well for me ;)

I had the same problem. I was able to commit the feature branch but not do 'feature finish'. I switched to the root directory ran git flow feature finish , and it worked.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

tianon picture tianon  ·  60Comments

88Alex picture 88Alex  ·  17Comments

erikhuizinga picture erikhuizinga  ·  4Comments

keithamus picture keithamus  ·  32Comments

OJ picture OJ  ·  29Comments