Finding a file in Git

Find a file in working directory

# Find 'a.c' in the current directory and its subdirectories.
$ git ls-files -- '**/a.c' a.c
a.c
source/a.c

Find a file in staging area

# Find 'a.c' in the current directory of staging area
# --cached, show files in the staging area
$ git ls-files --cached -- '**/a.c' a.c

Find a file in a commit

It also shows whether a file is tracked or not in a commit.

# Find 'a.c' in the current directory of HEAD commit
# -r, recursely
# --name-only, list file names (including path) only
$ git ls-tree -r --name-only HEAD | grep a.c
a.c
source/a.c

Command git ls-tree -r --name-only <commit> lists all files in a specific commit.

Getting count of tracked files in Git

Get count of tracked files in Git. Last updated: 2018-12-20

Get count of tracked files:

# Get count of tracked files in the current directory, including files in its subdirectories
$ git ls-files | wc -l

To get count of all tracked files in the repository, remember navigate to the root directory of repository.

ls-files

git ls-files lists all tracked files in the current folder:

# List tracked files
$ git ls-files
my-plugin.php
README.txt
assets/css/style.css
assets/js/my-plugin.js
...

wc

wc means word count, it can be used to count bytes, words, or lines. -l option indicates to count lines.