Search code examples
gitgithubgit-commit

git status (nothing to commit, working directory clean), however with changes commited


I found many questions with similar subject, but I didn't found any practical guidance about this issue: why git status informs me nothing to commit, working directory clean, even tough I have made a modification at my local branch?

Here are the steps which I followed:

  • git init [On branch master - Initial commit, nothing to commit (create/copy files and use "git add" to track)]
  • git remote add https://github.com/username/project.git
  • git pull origin master
  • touch test
  • git add test
  • git commit -m "Adding file for test purposes only."
  • git status [On branch master - nothing to commit, working directory clean]

If I do a git push, the modification is committed to the remote branch. I just want to perform "git status" after my modifications, and receive the information that I have changes on my local branch that must be pushed to the remote branch of the project.

What's going on?


Solution

  • Your local branch doesn't know about the remote branch. If you don't tell git that your local branch (master) is supposed to compare itself to the remote counterpart (origin/master in this case); then git status won't tell you the difference between your branch and the remote one. So you should use:

    git branch --set-upstream-to origin/master
    

    or with the short option:

    git branch -u origin/master
    

    This options --set-upstream-to (or -u in short) was introduced in git 1.8.0.

    Once you have set this option; git status will show you something like:

    # Your branch is ahead of 'origin/master' by 1 commit.