git count files in the staged index

I’m trying to figure out how to easily count the files in my uncommitted index.

I’ve tried:

  • Deploying websites with git security
  • How can I uniquely identify a git repository
  • How to create git branch from current files without changing master?
  • Remove all git files from a directory?
  • How can I restore only the modified files on a git checkout?
  • How can I build an application on a build server by not having all my DLLs in the same repository as the application
  • git status | grep '#' | wc -l
    

    but there are a few lines that start with # that don’t represent changed files. Anyone got anything better? Figured there had to be a flag for git status to do this.

    Even tools like GitX don’t easily allow you to select the staged files/directories and see how many of them there are.

  • Git client integrated with Finder
  • How to best get a repository from bitbucket?
  • Completely remove a file from whole git repository
  • How to revert Master branch to upstream
  • Git interactive rebase no commits to pick
  • How to handle accented characters in file names in Git on Mac OS X converted to unicode
  • 4 Solutions collect form web for “git count files in the staged index”

    If you want something a script can use:

    git diff --cached --numstat | wc -l

    If you want something human readable:

    git diff --cached --stat

    This worked for me:

    git status | grep 'modified:' | wc -l

    it returns a number

    Try git status -s:

    git status -s | egrep "^M" | wc -l
    

    M directly after start of line (^) indicates a staged file. “^ M” would be an unstaged but changed file.

    For what it’s worth, I prefer:

    git diff --stat | tail -n1
    

    Outputs something like:

    10 files changed, 74 insertions(+), 123 deletions(-)
    
    Git Baby is a git and github fan, let's start git clone.