[git] What does "Changes not staged for commit" mean

I thought if you want to track the files you should git add [files you want to track]

I don't know why I got the messages Changes not staged for commit.

If those files were not staged, shouldn't git shows me those files were Untracked like that

enter image description here

All I've done was create a new feature from develop branch and worked in feature/change_excel_format branch

I thought Those files should be in staged status,

But git status told me Changes not staged for commit

enter image description here

To brief, I only know there are 3 stages in git untracked, staged, committed Can any one tell me , what was the stage in for Changes not staged for commit enter image description here

So if I modified the file a (already in the repo)

and type git st , the git will tell me Changes not staged for commit

if I git a then the file a will be in staged status

if I modified the file a now, there will be two status of file a in git, right ?

So I have to decide if make the staged a be commit or make the not stage a to be staged, and then the previous staged file awill be discard ?

enter image description here

This question is related to git

The answer is


You may see this error when you have added a new file to your code and you're now trying to commit the code without staging(adding) it.

To overcome this, you may first add the file by using git add (git add your_file_name.py) and then committing the changes (git commit -m "Rename Files" -m "Sample script to rename files as you like")


What worked for me was to go to the root folder, where .git/ is. I was inside one the child folders and got there error.


Remove dir/.../.git

works for me.


Suposed you saved a new file changes. (navbar.component.html for example)

Run:

ng status
modified:   src/app/components/shared/navbar/navbar.component.html

If you want to upload those changes for that file you must run:

git add src/app/components/shared/navbar/navbar.component.html

And then:

git commit src/app/components/shared/navbar/navbar.component.html -m "new navbar changes and fixes"

And then:

git push origin [your branch name, usually "master"]

---------------------------------------------------------------

Or if you want to upload all your changes (several/all files):

git commit -a

And them this will appear "Please enter the commit message for your changes."

  • You'll see this message if you git commit without a message (-m)
  • You can get out of it with two steps:
  • 1.a. Type a multi-line message to move foward with the commit.
  • 1.b. Leave blank to abort the commit.
    1. Hit "esc" then type ":wq" and hit enter to save your choice. Viola!

And then:

git push

And Viola!


You have to use git add to stage them, or they won't commit. Take it that it informs git which are the changes you want to commit.

git add -u :/ adds all modified file changes to the stage git add * :/ adds modified and any new files (that's not gitignore'ed) to the stage


Follow the steps below:

1- git stash
2- git add .
3- git commit -m "your commit message"


Try following int git bash

1.git add -u :/

2.git commit -m "your commit message"

  1. git push -u origin master

Note:if you have not initialized your repo.

First of all

git init 

and follow above mentioned steps in order. This worked for me


It's another way of Git telling you:

Hey, I see you made some changes, but keep in mind that when you write pages to my history, those changes won't be in these pages.

Changes to files are not staged if you do not explicitly git add them (and this makes sense).

So when you git commit, those changes won't be added since they are not staged. If you want to commit them, you have to stage them first (ie. git add).